在 iOS 和 PHP 之间进行加密通信时遇到问题。我有一个加密字符串并将其发送到解密它的 PHP 服务器的应用程序。那部分工作得很好。现在 PHP 服务器需要将加密响应发送回应用程序,这似乎导致了更多的白发。
问题是,当我在 PHP 中加密一个字符串时,它看起来与在 iOS 甚至 .NET 中加密的相同字符串不同 - 显然所有地方都使用相同的算法、密钥和 IV。
我在 CBC 模式下使用 Rijndael 128,IV 由空字节组成(到目前为止)。
PHP 加密看起来是这样的:
$encrypted = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $this->secret_key, $str, MCRYPT_MODE_CBC, $this->iv );
$encrypted = base64_encode( $encrypted );
iOS 加密附加在此文件中:
StringEncryption.m:http ://pastie.org/1365766
我希望有人可以帮助我发现我遗漏了什么或有一些不同的值参数。我已经看了几个小时,找不到其他可以尝试的东西。