【发布时间】:2011-05-23 15:16:37
【问题描述】:
在 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
我希望有人能帮我找出我遗漏了什么或有一些不同的值参数的地方。我已经看了几个小时,找不到其他可以尝试的东西。
【问题讨论】:
-
这是我如何使用 StringEncryption.m pastie.org/1365771 的链接
-
我的 .NET 等价物:pastie.org/1365765(抱歉,每个帖子的链接不能超过一个...)
-
可能是字符串编码? ASCII、UTF-8、字节序?
-
我认为它不是编码 - 已尝试将所有内容更改为 ascii 和 utf8。
标签: php objective-c encryption ios mcrypt