AES256加密&在iOS中使用PKCS5PADDING进行解密

时间:2017-07-20 07:42:49

标签: ios encryption

在iOS本机前端,AES 256库支持PKCS7PADDING。 CommonCrypto / CommonCryptor类仅支持PKCS7PADDING和ECBMode。

我已经提到以下链接: https://forums.developer.apple.com/thread/64176 https://crypto.stackexchange.com/questions/9043/what-is-the-difference-between-pkcs5-padding-and-pkcs7-padding

如何使用PKCS5PADDING实现AES256?

1 个答案:

答案 0 :(得分:1)

  1. AES的默认CommonCrypto模式是CBC模式。
  2. 我可以找到的cloest文档位于CommonCryptor.h标题中:

      

    初始化向量,可选。用于密码块链接(CBC)模式。如果存在,则必须与所选算法的块大小相同。如果选择 CBC模式(由于选项标志中没有任何模式位)并且不存在IV,则将使用NULL(全零)IV。如果使用ECB模式或选择了流密码算法,则忽略此项。

    1. PKCS#7 padding是AES的正确填充,是PKCS#5填充的超集。
    2.   

      PKCS#5填充与PKCS#7填充相同,只是它仅为使用64位(8字节)块大小的块密码定义。在实践中,这两者可以互换使用。

      背景:许多AES实现都使用PKCS#5,因为它是在AES之前使用的,并且实现者也懒惰地定义PKCS#7以与AES一起使用并且仅使用PKCS#5命名。一般来说,PKCS#5的实际实施完全支持PKCS#7。