我正在使用as3crypto库让AES算法在我正在做的一个小项目中工作。下面是我获取加密函数的方法:
var cipher:ICipher = Crypto.getCipher("simple-aes-cbc", key, Crypto.getPad("pkcs5"));如你所见,我正在尝试使用带CBC和pkcs5填充的AES-128。
如果我的源数据是128字节长,那么加密后的数据就是160字节。有人能告诉我为什么这个问题会出现吗?
下面是我从一个示例程序编译的一个小表。
源串长度|加密串长度
15 | 32
16 | 48
31 | 48
32 | 64
是应该是这样还是我搞错了。
发布于 2011-08-13 18:42:39
应该是这样的。您请求的是PKCS5 padding,它总是添加至少一个字节的填充。当然,输入必须向上舍入到一定数量的完整块,因为AES会生成16字节的输出块。对于半个块,您根本无法解密任何输入。
https://stackoverflow.com/questions/6910914
复制相似问题