在相当多的地方,我看到了在PKCS#5填充中使用AES的Java代码。我不明白这是如何可行的。
PKCS#5填充应该与块大小为<= 8字节的密码一起使用。AES的块大小为16字节。所有使用AES和PKCS#5的代码都是错误的吗?或者框架内部是否使用PKCS#7?所讨论的框架将是Sun在Java、JCE和BouncyCastle中提供的。
发布于 2015-06-16 00:26:51
代码实际上使用的是PKCS#7。指定"PKCS5Padding"的原因很可能是由于与旧的DES和3 DES密码兼容。注意,PKCS#5填充正好是8个字节,而不是更少。为了兼容起见,Bouncy城堡通常遵循Sun/Oracle提供程序,尽管您也可以使用更正确的"PKCS7Padding"来支持Bouncy城堡提供程序。
更多信息on the crypto site (免责声明:指向我自己流行的Q/A)。
https://stackoverflow.com/questions/30809726
复制相似问题