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
…