我已经使用PKS5Padding在Java加密中实现了AES(CBC)算法。我注意到输入字符串大小为128字节;加密文本的大小为144字节。这是正常的吗?根据我的理解,AES算法不应填充此字符串,因为它是16的乘法。
答案 0 :(得分:1)
始终应用PKCS#7 / PKCS#5填充。检查Wikipedia page。如果您的16字节对齐数据将以字节01
结束,并且您将删除填充,那么您将有一个较少的明文字节。因此,对于AES,添加了1到16个字节,因此具有块大小的倍数是最糟糕的情况而不是最佳情况。