3

使用 CCCrypt 解密会在 iOS (5,6) 和 MacOS 10.7 上返回不同的结果。在不同平台/架构中运行的相同代码会产生具有相同输入的不同输出。为什么?以及如何解决?

我已经调试了一切。在 Mac 或 iPhone 上运行的所有变量共享相同的值。它们的分叉点是:

ccStatus = CCCrypt(kCCDecrypt, //decrypt 
                       kCCAlgorithmAES128, //AES128
                       0, // mode - no Padding
                       rawAESKey, // simmetric key
                       kCCKeySizeAES128, //key size
                       iv, 
                       dataIn, dataInBytesSize, //input 
                       dataOut, dataOutBytesSize, //output
                       &clearTextSize);

此时,dataOut根据它是在 mac 中运行还是在 iPhone 中运行,具有不同的值。ccStatus在这两种情况下都返回成功。

注意:Xcode 版本 4.6.2 (4H1003) iOS SDK 5,6 - 生成为 32 位的二进制 MacOS SDK 10.7 - 生成为 64 位的二进制

4

0 回答 0