使用OpenSSL 1.0.2p AES-256-ECB解密时出现‘bad decrypt’错误求助
AES-256-ECB解密"bad decrypt"错误解决办法
出现bad decrypt错误的核心原因通常是加密和解密的参数不匹配,尤其是盐值处理、密钥推导算法的隐性差异,针对OpenSSL 1.0.2p版本,可按以下步骤排查解决:
统一盐值处理参数
如果不需要随机盐值,加密和解密时都添加-nosalt参数,避免默认盐值导致的匹配失败:
加密命令:openssl enc -aes-256-ecb -e -in abc -out abc_en -k 1122334455 -nosalt解密命令:
openssl enc -aes-256-ecb -d -in abc_en -out abc_1 -k 1122334455 -nosalt显式指定密钥推导哈希算法
OpenSSL 1.0.2p用-k参数时默认用MD5生成密钥,若环境中哈希算法配置有差异,可显式指定-md md5确保加密解密一致:
加密命令:openssl enc -aes-256-ecb -e -in abc -out abc_en -k 1122334455 -md md5解密命令:
openssl enc -aes-256-ecb -d -in abc_en -out abc_1 -k 1122334455 -md md5检查加密文件完整性
确认abc_en文件未被意外修改(如二进制文件编辑、传输损坏),可重新执行加密命令生成新的加密文件后再尝试解密。直接使用原始密钥测试
若怀疑口令推导过程出问题,可先从口令生成AES-256密钥,再用-K(大写)指定原始密钥进行加解密:
生成密钥:echo -n "1122334455" | openssl dgst -md5 -binary | xxd -p加密(替换
生成的密钥为上面输出的32位十六进制字符串):openssl enc -aes-256-ecb -e -in abc -out abc_en -K 生成的密钥 -nosalt解密:
openssl enc -aes-256-ecb -d -in abc_en -out abc_1 -K 生成的密钥 -nosalt
内容的提问来源于stack exchange,提问作者gao
相关产品推荐
相关产品推荐

