php - RSA iOS 加密 & PHP 解密

标签 php objective-c ios rsa public-key-encryption

引用此链接http://blog.iamzsx.me/show.html?id=155002 ,我使用生成了一对 key

$ openssl req -x509 -out public_key.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 3650

这个命令。然后我得到 private_key.pem & public_key.der .

我按照我得到的加密数据的实现

<ceaedf05 f39b69ab 8618f859 599926e9 c18d9233 342c58e0 534b66af 8b33dda3 375d6a11 b95ad821 11549637 ce4c26dc 760169c6 04096aff 9ec48938 1c6b149f 8180f9bb 8e1337ce 2b492af2 e0464e4c 9ab7aabd 9da53caf 1b5e5277 3c708b43 cb6515ee c9a18b02 4941416c 7f1e36d3 dcd3705b 66f8a159 ab8a7a3f a9db8306>

但我想要的是

dXXEEADvRDdk4QVM6TU9dyYtuHe8RVzP3KsWAoDDSQ2w+NELVPOv4mSVW1jIhEhb+pLsmOvLzGIW1/2qkp91M1UoPuhgplV2JEgP8EvcBn8EY43n7wVASGP9heRK0lYMfENP54f35+GFP68nU5zbrmX0IN6DGGGSNdSewzLb6s4=

其实我想要的是下面的功能:
在 iOS 中:

- (NSString *)encryptedString:(NSString *)plainText

在 PHP 中:

function decrypted_string()  
{
    $encrypted_string = $_POST['encrypted_string']; 
    // implementation
    return $plain_text;
}

如何实现这些功能?

我已经用谷歌搜索了,不幸的是,没有我想要的解决方案。希望能在这里得到帮助。提前致谢。

最佳答案

在发送到 php 之前,您需要对 NSData 进行 base64 编码。请参阅以下帖子的答案:

Creating a base-64 string from NSData

在php端,可以使用openssl_private_decrypt进行解密。引用如下:

http://php.net/manual/en/function.openssl-private-decrypt.php

示例:

<?php
$fp=fopen("/path/to/private_key.pem","r");
$priv_key=fread($fp,8192);
fclose($fp);
$res = openssl_get_privatekey($priv_key, "myPassword");

$data = $_POST['encrypted_string']; 
if (openssl_private_decrypt(base64_decode($data), $decrypted, $res))
         echo "Decrypted:$decrypted";
?>

关于php - RSA iOS 加密 & PHP 解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14018651/

相关文章:

php - 使用 laravel 进行 REST api 身份验证

iphone - 根据预处理器宏值更改基本 url

objective-c - -[NSOperationQueue currentQueue] 可靠吗?

ios - EXC_BAD_ACCESS (SIGSEGV)

php - array_walk_recursive,在 PHP 中使用外部变量的函数

php - 如何在移动网络应用程序中隐藏地址栏?

ios - 使用自定义顺序在 MKMapview 中显示 MKAnnotationView?

php - 将方法 nsdictionary 发布到 json 对象 iOS objective-c

php - 无法在 PHP 中打开 session

html - 单击 UIWebView 时如何在 Safari 中打开链接?