OpenSSL在aes加密中填充密钥?

时间:2016-10-07 03:10:47

标签: openssl aes

我试图在openssl上使用aes-128-cbc加密,我希望密钥需要32位。但是,我注意到当我输入密钥长度为18时,openssl不会给我一个错误。

echo hello | openssl enc -aes-128-cbc -A -a -nosalt -K 123456789012345678 -iv 66666666666666666666666666666666

output:zBN+65infn74QK+prfY6kw==

但如果我在密钥之后添加0,直到它的32位数字,我仍然会得到相同的结果。

echo hello | openssl enc -aes-128-cbc -A -a -nosalt -K 12345678901234567800000000000000 -iv 6666666666666666666666666666666

output:zBN+65infn74QK+prfY6kw==

是否有文档说OpenSSL为密钥添加了填充?

编辑:我需要在代码中重现此行为。我给了钥匙,但无法保证钥匙的位数。

1 个答案:

答案 0 :(得分:1)

使用128位密钥的AES是16字节或32位十六进制数字密钥。它可能是零填充键的未指定部分,不依赖于键填充,这是未指定的行为。

最好为加密函数提供确切的大小输入,为AES 128位密钥指定32位十六进制数字。