我使用来自stackoverflow回答的以下命令加密了一个文件:
openssl enc -in file_name -aes-256-cbc -pass stdin -out file_name.aes;我可以通过运行以下命令来解密这个文件:
openssl enc -in file_name.aes -d -aes-256-cbc -pass stdin -out file_name但是,解密命令仅在我加密文件(CentOS)的机器中工作。如果我将加密的文件file_name.aes复制到我的另一台计算机(运行在Fedora上)并试图解密它,我会收到一条错误消息:
140667230762896:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:592:这意味着我输入了错误的密码。OpenSSL aes加密系统是否有缺陷?为什么我只能在CentOS中解密文件,而不能在Fedora中解密?
发布于 2019-04-18 17:39:18
几乎可以肯定,在这两个系统上都有不兼容的OpenSSL版本。运行openssl version检查。
失败的原因通常是默认消息摘要在两个版本之间发生了更改,旧版本使用MD5,更新版本使用SHA256。OpenSSL不会将哈希类型存储在输出消息中,并且希望您在命令中显式地指定哈希类型,如果您想使用默认值以外的任何东西。尝试将-md sha256添加到两个命令中。
https://security.stackexchange.com/questions/207684
复制相似问题