-6

我正在从aes 加密程序在 c 中实现 AES 算法, 而且我们在 java 中编写 AES 程序,在生成加密数据时出现的问题都是不同的。输入文本:358960040119672 键:mlabs

输出: 1. 由 java(android):"vcpBspcYHtjlMgbQJI3aWg==" 2. 由 c :"`Äç © õ#«0Z"÷›ý"

为什么这个特殊的字符。显示在 c 中。如何处理这个?

4

2 回答 2

1

Java输出经过加密后已经用Base64算法编码,C没有。

于 2012-07-04T07:17:15.450 回答
0

问题可能在于填充和转换。将数据转换为字节(例如十六进制),因为 128 位加密的结果是任何值的 18 个八位字节(甚至是不可打印的 ASCII 字符)。确保双方使用相同的填充。

AES 128 位被定义为 CHIPERTEXT[16 octets] = AES(KEY[16 octets], PLAIN[16 octets])) 并且没有使用字符串的约定。

于 2012-07-04T07:13:20.483 回答