首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨平台OpenSSL aes加密

跨平台OpenSSL aes加密
EN

Security用户
提问于 2019-04-18 17:27:32
回答 1查看 682关注 0票数 1

我使用来自stackoverflow回答的以下命令加密了一个文件:

代码语言:javascript
复制
openssl enc -in file_name -aes-256-cbc -pass stdin -out file_name.aes;

我可以通过运行以下命令来解密这个文件:

代码语言:javascript
复制
openssl enc -in file_name.aes -d -aes-256-cbc -pass stdin -out file_name

但是,解密命令仅在我加密文件(CentOS)的机器中工作。如果我将加密的文件file_name.aes复制到我的另一台计算机(运行在Fedora上)并试图解密它,我会收到一条错误消息:

代码语言:javascript
复制
140667230762896:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:592:

这意味着我输入了错误的密码。OpenSSL aes加密系统是否有缺陷?为什么我只能在CentOS中解密文件,而不能在Fedora中解密?

EN

回答 1

Security用户

回答已采纳

发布于 2019-04-18 17:39:18

几乎可以肯定,在这两个系统上都有不兼容的OpenSSL版本。运行openssl version检查。

失败的原因通常是默认消息摘要在两个版本之间发生了更改,旧版本使用MD5,更新版本使用SHA256。OpenSSL不会将哈希类型存储在输出消息中,并且希望您在命令中显式地指定哈希类型,如果您想使用默认值以外的任何东西。尝试将-md sha256添加到两个命令中。

票数 6
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/207684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档