2016-10-07 239 views
1

我试图用openssl使用aes-128-cbc加密,并且我期望该密钥需要是32位数字。但是,我注意到,当我输入18的密钥长度时,openssl不会给我一个错误。OpenSSL密钥在aes加密?

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

output:zBN+65infn74QK+prfY6kw== 

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

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

output:zBN+65infn74QK+prfY6kw== 

是否有任何说明OpenSSL向密钥添加填充的文档?

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

+1

Stack Overflow是编程和开发问题的网站。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。另请参阅[我在哪里发布关于Dev Ops的问题?](http://meta.stackexchange.com/q/134306) – jww

+1

并非每个行为都经常被描述。现在你问了这个问题,你也记录了它。 –

回答

1

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

它始终是最好提供准确的大小输入加密功能,用于AES 128位密钥指定32个进制数字。