不同openssl版本的行为差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不同openssl版本的行为差异相关的知识,希望对你有一定的参考价值。

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

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

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

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

7Lz5dLLYCLCv9GjadL1LTQ==

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

qq26+CHHB6MuY33GAqeIVw==

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

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

答案

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

请参阅此FAQ条目:

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

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

以上是关于不同openssl版本的行为差异的主要内容,如果未能解决你的问题,请参考以下文章

C程序存储结构

不同操作系统版本下的相同浏览器行为

Java查看不同版本之间的差异和代码的改动 | 黑马程序员

MAC升级openssl

ManActivity + 启动时的片段差异

为啥尽管源代码没有变化,但从一个系统到另一个系统的片段数量却有很大差异?