为了账号安全,请及时绑定邮箱和手机立即绑定

加密/解密在两个不同的openssl版本之间不能很好地工作

加密/解密在两个不同的openssl版本之间不能很好地工作

桃花长相依 2019-07-31 10:05:26
加密/解密在两个不同的openssl版本之间不能很好地工作我已经下载并编译了openssl-1.1.0。我可以加密,并使用相同的exe解密openssl(如这里)me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. ./apps/openssl aes-256-cbc -a -salt -in file.txt -out file.txt.encenter aes-256-cbc encryption password: 123Verifying - enter aes-256-cbc encryption password:me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. apps/openssl aes-256-cbc -a -d -in file.txt.enc -out file.txt.decenter aes-256-cbc decryption password: 123这openssl用于:libcrypto.so.1.1, libssl.so.1.1当我尝试openssl使用我的ubuntu上安装的解密时,它使用: /lib/x86_64-linux-gnu/libssl.so.1.0.0, /lib/x86_64-linux-gnu/libcrypto.so.1.0.0我收到一个错误:me@ubuntu:~/openssl-1.1.0$ openssl aes-256-cbc -a -d -in file.txt.enc -out file.txt.dec2enter aes-256-cbc decryption password: 123bad decrypt140456117421728:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539:可能是什么原因导致的 谢谢
查看完整描述

3 回答

?
HUH函数

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强制相同的摘要


查看完整回答
反对 回复 2019-07-31
?
慕少森

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


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 2233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信