不同 openssl 版本的行为差异

Differences in behavior for different openssl versions

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

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

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

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

7Lz5dLLYCLCv9GjadL1LTQ==

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

qq26+CHHB6MuY33GAqeIVw==

这意味着当我现在来解码我的密码时,它们没有正确解码。我在这里遗漏了什么吗?

NB: I know that the nosalt option is a bad idea, and I don't actually use it. I've just included it here to help clarify my problem.

用于从 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”选项指定要使用的散列。