【发布时间】:2023-12-04 20:02:01
【问题描述】:
我不确定我在这里做错了什么,但我已将所有密码作为加密字符串保存在一个文件中。我用来加密它们的命令是这样的:
echo "password" | openssl enc -aes-256-cbc -a -nosalt
然后我使用password 作为加密密钥。
最初(使用 openssl 版本 1.0.2g),这导致了字符串
7Lz5dLLYCLCv9GjadL1LTQ==
已保存到密码文件中。但是,当我现在使用 1.1.0g 版本运行相同的命令时,我得到了字符串
qq26+CHHB6MuY33GAqeIVw==
这意味着当我现在来解码我的密码时,它们没有正确解码。我在这里有什么遗漏吗?
注意:我知道
nosalt选项是个坏主意,我实际上并没有使用它。我刚刚将其包含在此处以帮助澄清我的问题。
【问题讨论】:
-
openssl encman page 没有列出更改,例如将默认哈希更改为 SHA-512。也许发行说明提到了一些东西。如果一切都失败了,那么试试-md md5和-md sha1选项。在不同系统上进行测试时,您可能应该明确使用echo -n以避免新行。它通常会导致不同的结果。 -
是的,-md md5 已经做到了。非常感谢。可惜它不在 man doc 中……让我搜索了几个小时。
-
当不同版本甚至无法正常互操作时,openssl 就一团糟。您将“寻找几个小时”,因为它们的记录很差,并且隐藏在一个角落里。不要浪费你的青春。这些时间已经白白浪费了。
标签: linux bash openssl versioning