以十六进制加密为 AES 128 ECB

Encrypt to AES 128 ECB in HEX

我正在尝试使用 openssl 将纯文本加密为 HEX 中的 AES 128 ECB

使用纯文本 11111111111111111111111111111111 和原始密钥 00000000000000000000000000000000 我正在尝试使用:

echo -n "11111111111111111111111111111111" | openssl enc -aes-128-ecb -K 00000000000000000000000000000000 -nosalt | xxd -p

但这给了我:

b6de54f9a78637d1eb523ca7201589f4b6de54f9a78637d1eb523ca72015
89f40143db63ee66b0cdff9f69917680151e

我应该得到:

FFA3C7ED04710B98067DAE6815E2751F

我做错了什么?

您忘记对您的明文进行十六进制解码。此外,OpenSSL 默认为 PKCS#7 填充,因此如果您需要 16 字节的输出以用于 16 字节的输入,则应忽略最后一个 16 字节/32 个十六进制字符块。