3 回答
TA贡献1836条经验 获得超4个赞
在Openssl 1.1中,默认摘要从MD5更改为SHA256
尝试使用-md md5
cgs@ubuntu:~$ echo "it-works!" > file.txtcgs@ubuntu:~$ LD_LIBRARY_PATH=~/openssl-1.1.0/ openssl-1.1.0/apps/openssl aes-256-cbc -a -salt -in ~/file.txt -out ~/file.txt.enc -md md5enter aes-256-cbc encryption password:Verifying - enter aes-256-cbc encryption password:cgs@ubuntu:~$ LD_LIBRARY_PATH=~/openssl-1.0.1f/ openssl-1.0.1f/apps/openssl aes-256-cbc -a -in ~/file.txt.enc -denter aes-256-cbc decryption password:it-works!
丑陋的细节:
输入的密码不是由aes(或其他加密)使用,但命令隐式从中导出密钥。密钥派生使用在openssl 1.1中更改的消息摘要使用SHA256而不是MD5作为默认摘要。
如果你想保持简单的密码,而不是开始搞乱键盘军事(-K,-iv)只需用-md强制相同的摘要
TA贡献2019条经验 获得超9个赞
OpenSSL 1.1和LibreSSL之间也可能发生此问题。在这种情况下,以及在可用的更安全的消息摘要的其他情况下,您应该避免使用-md md5
加密新文件,因为MD5算法具有广泛的漏洞。
您应该使用-md sha256
或所有版本支持的其他更安全的消息摘要。-md md5
应仅用于解密旧文件,理想情况下应使用sha256重新加密。这也在OpenSSL FAQ中提到:
消息摘要用于从人工输入的密码短语创建加密/解密密钥。在OpenSSL 1.1.0中,我们从MD5更改为SHA-256。我们这样做是作为整体改变的一部分,以摆脱现在不安全和破碎的MD5算法。如果您有旧文件,请使用“-md md5”标志对其进行解密。
要检查您正在使用的不同版本支持哪些消息摘要,请运行openssl help
:
LibreSSL 2.2.7(包含在macOS 10.13 High Sierra中):
$ openssl help
…
Message Digest commands (see the `dgst' command for more details)
gost-mac md4 md5 md_gost94
ripemd160 sha sha1 sha224
sha256 sha384 sha512 streebog256
streebog512 whirlpool
…
OpenSSL 1.1f:
$ openssl help
…
Message Digest commands (see the `dgst' command for more details)
blake2b512 blake2s256 gost md4
md5 rmd160 sha1 sha224
sha256 sha384 sha512
…
- 3 回答
- 0 关注
- 2233 浏览
添加回答
举报