使用CCCrypt进行解密会在iOS和MacOS上返回不同的结果

时间:2013-06-21 23:54:16

标签: ios objective-c macos encryption

使用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位

0 个答案:

没有答案