我目前正在使用AES/CBC/PKCS5Padding加密中的256字节密钥大小的文件,但是在搜索时我在StackExchangePKCS#5-PKCS#7 Padding上找到并提到了,
PKCS#5填充是用于8字节块大小的PKCS#7填充的子集。
所以我想知道
AES/CBC/PKCS7Padding的性能会比AES/CBC/PKCS5Padding好吗?我的样本代码是,
SecureRandom rnd = new SecureRandom();
IvParameterSpec iv = new IvParameterSpec(rnd.generateSeed(16));
KeyGenerator generator = KeyGenerator.getInstance("AES");
generator.init(256);
SecretKey k = generator.generateKey();
Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
c.init(Cipher.ENCRYPT_MODE, k, iv);发布于 2013-12-25 07:20:57
块大小是使用的密码算法的一个属性。对于AES来说,它总是16字节。
因此严格地说,PKCS5Padding不能与AES一起使用,因为它只定义了8个字节的块大小。我猜想,AES/CBC/PKCS5Padd在内部被解释为AES/CBC/ assume 7填充。
这些填充方案之间唯一的区别是,PKCS7Padding以块大小作为参数,而对于PKCS5Padding,则将其固定为8字节。当块大小为8字节时,它们的操作完全相同。
https://stackoverflow.com/questions/20770072
复制相似问题