2

我正在使用 as3crypto 库来让 AES 算法在我正在做的一个小项目上工作。这就是我获得加密功能的方式:

var cipher:ICipher = Crypto.getCipher("simple-aes-cbc", key, Crypto.getPad("pkcs5"));

如您所见,我正在尝试将 AES-128 与 CBC 和 pkcs5 填充一起使用。

如果我的源数据长度为 128 字节,则加密数据为 160 字节。有人可以告诉我为什么会出现这个问题吗?

以下是我从示例程序编译的一个小表。
源字符串长度 | 加密字符串长度
15 | 32
16 | 48
31 | 48
32 | 64

应该是这样还是我犯了一些错误。

4

1 回答 1

1

它应该是这样的。您要求PKCS5 填充,它总是添加至少一个字节的填充。而且,当然,输入必须四舍五入到一定数量的整块,因为 AES 产生 16 字节的输出块。使用半个块,您根本无法解密任何输入。

于 2011-08-13T10:42:39.263 回答