You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OpenSSL AES-256-CBC无法解密2022年初加密的机密内容,求解决方案

使用OpenSSL AES-256-CBC无法解密2022年初加密的机密内容,求解决方案

别慌,这个问题我碰到过好多次,核心原因其实是OpenSSL版本更新后,默认的密钥派生哈希算法变了。2022年你加密时用的OpenSSL(大概率是1.1.1系列版本)默认用MD5作为密钥派生的哈希函数,但现在的OpenSSL 3.x版本默认换成了SHA-256,这就导致你用当前默认参数解密旧加密内容时,生成的密钥和当年完全不一致,自然会报bad decrypt错误。

给你几个具体的解决步骤:

1. 修正解密命令,指定旧版哈希算法

直接在解密命令里加上-md md5参数,强制使用当年的密钥派生逻辑,命令改成这样:

echo "$myencryptedsecret" | openssl enc -aes-256-cbc -a -A -d -k "$mypassword" -md md5

注意:一定要给变量$myencryptedsecret和$mypassword加上双引号,避免shell把特殊字符截断或解析出错。

2. 如果MD5不行,尝试其他旧版默认哈希

极少数情况下,有些环境的OpenSSL 1.1.1可能被配置成默认用SHA1,你可以试试替换成-md sha1:

echo "$myencryptedsecret" | openssl enc -aes-256-cbc -a -A -d -k "$mypassword" -md sha1

3. 额外排查点

  • 确认你保存的加密字符串没有被意外修改(比如多了空格、换行,或者字符编码问题)
  • 当年加密时用的echo默认会在输入末尾加换行符,解密后可能会包含这个换行,如果不需要可以用echo -n mysecret重新测试加密解密验证逻辑

按照上面的方法,应该就能顺利解密你2年前的机密内容了。

备注:内容来源于stack exchange,提问作者Chris F Carroll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:43:09