不同openssl版本的行为差异

时间:2018-02-28 16:37:59

标签: linux bash openssl versioning

我不确定我在这里做错了什么,但我将所有密码都保存在文件中作为加密字符串。我用来加密它们的命令是这样的:

echo "password" | openssl enc -aes-256-cbc -a -nosalt

然后我使用password作为加密密钥。

最初(使用openssl版本1.0.2g),这导致了字符串

7Lz5dLLYCLCv9GjadL1LTQ==

已保存到密码文件中。但是,当我现在使用版本1.1.0g运行相同的命令时,我得到字符串

qq26+CHHB6MuY33GAqeIVw==

这意味着当我现在解密我的密码时,它们无法正确解码。我有什么东西在这里缺席吗?

  

注意:我知道nosalt选项是个坏主意,我实际上并没有使用它。我刚才把它包括在内以帮助澄清我的问题。

1 个答案:

答案 0 :(得分:1)

用于从密码生成加密密钥的默认哈希值在OpenSSL 1.0.2和OpenSSL 1.1.0之间更改。

请参阅此常见问题条目:

https://www.openssl.org/docs/faq.html#USER3

在1.0.2中,默认哈希是md5,1.1.0是sha256。使用" -md"指定要使用的哈希值。选项。