【问题标题】:miss some characters when do AES 256 decryption in objc在 objc 中进行 AES 256 解密时遗漏了一些字符
【发布时间】:2012-09-12 19:58:27
【问题描述】:

python(2.6)中加密方法的代码:

key += PADDING * (32 - len(key))
pad_it = lambda s: s+(16 - len(s)%16)*PADDING
crypt = AES.new(key, AES.MODE_CBC, 'J2-+sfd%932mIt:{')
data = crypt.encrypt(pad_it(data))

objc(iOS6)中解密方法的代码:

CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt,
                                      kCCAlgorithmAES128,
                                      kCCOptionPKCS7Padding,
                                      keyPtr, kCCKeySizeAES256,
                                      NULL /* initialization vector (optional) */,
                                      [self bytes], dataLength, /* input */
                                      buffer, bufferSize, /* output */
                                      &numBytesDecrypted );

我用python加密一个plist文件,然后用objc解密, 但是在 objc (iOS6) 中调试时,解密后的数据在文件内容的末尾丢失了一些字符。

是否有人也遇到过这个问题,有人可以帮助我吗?谢谢。

【问题讨论】:

  • 文件中有'\0'吗?

标签: python objective-c aes ios6


【解决方案1】:

kCCOptionPKCS7Padding 设置不正确,因此 iOS6 正在删除最后一个 16 字节块。 iOS5,当padding设置不正确时,将其视为未指定。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 1970-01-01
  • 2019-11-01
  • 1970-01-01
  • 2019-01-20
相关资源
最近更新 更多