在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?
答案 0 :(得分:1)
我可以找到的cloest文档位于CommonCryptor.h标题中:
初始化向量,可选。用于密码块链接(CBC)模式。如果存在,则必须与所选算法的块大小相同。如果选择 CBC模式(由于选项标志中没有任何模式位)并且不存在IV,则将使用NULL(全零)IV。如果使用ECB模式或选择了流密码算法,则忽略此项。
PKCS#5填充与PKCS#7填充相同,只是它仅为使用64位(8字节)块大小的块密码定义。在实践中,这两者可以互换使用。
背景:许多AES实现都使用PKCS#5,因为它是在AES之前使用的,并且实现者也懒惰地定义PKCS#7以与AES一起使用并且仅使用PKCS#5命名。一般来说,PKCS#5的实际实施完全支持PKCS#7。