解密AES-128-CBC加密文件时遇读取错误与魔数错误的解决问询
解决AES-128-CBC无Base64编码文件的解密问题
核心调整:移除-a参数
既然已确认目标文件未经过Base64编码,解密时绝对不能添加-a参数(该参数仅用于处理Base64格式的密文)。针对你的场景,先尝试修正命令细节:
修正后的基础解密命令
openssl enc -in "$ciphertext_file" -d -aes-128-cbc -md md5 -pass pass:"$password" -pbkdf2
排查error reading input file报错的常见原因
如果执行上述命令仍报错,按以下步骤逐一排查:
- 验证文件路径:执行
ls -l "$ciphertext_file"确认$ciphertext_file变量指向的文件真实存在,路径无特殊字符(如空格、引号)未正确转义 - 检查文件权限:执行
chmod +r "$ciphertext_file"确保当前用户拥有文件读取权限 - 确认文件完整性:若文件在传输过程中损坏也会触发读取错误,可通过对比文件哈希值(如MD5、SHA256)验证完整性
额外定位方案
如果上述调整后仍有问题,可尝试直接指定密钥和IV(若能获取到)跳过PBKDF2推导,进一步定位问题:
# 替换<十六进制密钥>和<十六进制IV>为实际值(均为16字节的十六进制字符串) openssl enc -in "$ciphertext_file" -d -aes-128-cbc -K <十六进制密钥> -iv <十六进制IV>
内容的提问来源于stack exchange,提问作者user20148023
相关产品推荐
相关产品推荐

