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

使用OpenSSL解密AES-ECB-256加密密码报错,求正确解密方法

AES-256-ECB解密错误修复方案

已知信息

加密参数与密文:

##PASS_16##
oRnS7llE9q3utIvyP1rbK4OPVDjOPdEss36jsgu/Yvfh9yx0qR530oV8eLH9fxw2
AES-ECB-256
Key : thisIsTheSharedKeyIShouldKeepOK!

密钥文件key.txt内容:

thisIsTheSharedKeyIShouldKeepOK!

十六进制密钥hex_key.txt内容:

7468697349735468655368617265644b65794953686f756c644b6565704f4b21

错误原因

使用echo输出密文时,默认会在末尾添加换行符,导致Base64解码后的密文多了1个字节,破坏了AES要求的16字节块对齐(AES块大小固定为16字节,密文长度必须是16的整数倍),因此触发wrong final block length错误。

正确解密步骤

1. 修正Base64解码(避免添加换行)

用printf替代echo,它不会自动添加换行符:

printf "oRnS7llE9q3utIvyP1rbK4OPVDjOPdEss36jsgu/Yvfh9yx0qR530oV8eLH9fxw2" | base64 -d > decoded_cipher.txt

2. 执行解密命令

使用十六进制密钥解密:

openssl enc -aes-256-ecb -d -in decoded_cipher.txt -out decrypted.txt -K 7468697349735468655368617265644b65794953686f756c644b6565704f4b21 -nopad

或者直接一步完成(无需保存中间文件):

printf "oRnS7llE9q3utIvyP1rbK4OPVDjOPdEss36jsgu/Yvfh9yx0qR530oV8eLH9fxw2" | base64 -d | openssl enc -aes-256-ecb -d -K 7468697349735468655368617265644b65794953686f756c644b6565704f4b21 -nopad

如果想用明文密钥文件解密,命令如下:

printf "oRnS7llE9q3utIvyP1rbK4OPVDjOPdEss36jsgu/Yvfh9yx0qR530oV8eLH9fxw2" | base64 -d | openssl enc -aes-256-ecb -d -pass file:key.txt -nopad

验证结果

执行后打开decrypted.txt或查看终端输出,即可得到符合PASS_16{字母数字内容}或纯字母数字格式的明文。

内容的提问来源于stack exchange,提问作者Ekel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:33:36