aes加密中的OpenSSL pads密钥?

aes加密中的OpenSSL pads密钥?,openssl,aes,Openssl,Aes,我正在尝试将aes-128-cbc加密与openssl结合使用,我希望密钥需要是32位数字。然而,我注意到当我输入密钥长度为18时,openssl并没有给我一个错误 echo hello | openssl enc -aes-128-cbc -A -a -nosalt -K 123456789012345678 -iv 66666666666666666666666666666666 output:zBN+65infn74QK+prfY6kw== 但是如果我在键后面加上0,直到它是32位,我

我正在尝试将aes-128-cbc加密与openssl结合使用,我希望密钥需要是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在密钥中添加了填充


编辑:我需要在代码中重现这种行为。我得到了密钥,但无法保证密钥的位数。

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


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

Stack Overflow是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。还请注意,并非所有行为都始终被描述。既然你问了这个问题,你也记录了它。