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

用OpenSSL解密大体积AES-256-CBC加密数据出现乱码如何解决?

AES-256-CBC大体积数据解密乱码问题解决

加密信息

  • 加密算法:AES-256-CBC
  • 加密数据(Base64编码):
7dS560FiDJvUji7c+ky/9nQp+HwK3SEOkY4zefqlFuEyF2/vevrv8K4GJNr2zxD7+j28RK97LmaHjwY9F+/feO6T2DAQuJQsT3wp/fKCPyErwZggsE+ufzvEJZK/XObR8CdbBe8EGZC//JsuMo7MV6SSe267jp4U2iIz4xIFxUlFVy9QcjTr6AUJZdVogedreBgy3/q/isAqOvwoHuj74MV5gkfaXWvmqESjMF4s5wMsYmS1WuBWOR6rw+TSwuL52CiVC5arHuJJEKuodO58bJ+1Ip9uelUIOETswiZmZB6gpTkbos7ij0BpJregejT+9vsDO1tB7+QpByMqeeEbEiSp4N833Z29WmVmy+HpxdZvOPIJ2pyelVhRVPPs/V7VREs4v8/e3X1jR0saA1sSyKYNgIGZUWaQTJwBNi87IPkGiUtyhPnrrKh+BighshJi+Jd+s3+sTYM5CaADvaGhm3wx96rBQi2So+NmFcm5cQa4jRA4S8sLGHmniUO0iiEcxQ2FvlGt+0PBqdbCPewBgOHdjpBUYjs1oR4pV5VjbjTfuIh75G7TS6TZT/gMewJXOXPw88zsSgjXVjRK0obOXaJBKABJ8AqKbKULWHoeMuWW4OdiSZ7mNVt6N40LK/u12vpqWU7Wt5XbSeE3arJPjljEV7WhafKvIOHFx+cK0wB9LQnFUrx/FTLL5HDDEkhnVkm02vxXSFKDwP36VgQnPpvOnY5fbJUTyjnwJcO8I9/H1hYwzPRhos2eNAdHZ3aMysU8zSobwUVto9GnQrvVmVURFyEX6fwifkrf2DTfCsDNSsHt4DLCtsszABKTwTezUoBesNkndk/Qkcd13GEZjTHoyP2tLp85nYwbwI6P+yr1jeu9v3ocN5p0LWPXdwlyTo55WeYkGzlJLsM6d9sut1qlcyQ2AZ536+eYFAIURJkmSexwfbdRebwckvqURRO3a55WCbLxVARKDHnyfculr/ndwyZF7J0RX4G1KcwSgfRdnBpUCkpGeQRImv5Ry5RYXwp5XfKQDrGTCEhV3XtDBD4b2eTxw4KwgJUq9T6IQjNNyPyDwM5AFxS2Y+4wAA0PA2iADfVe3kZrOKYpZvVn0Q==
  • 密钥(Base64编码):
uHe2MCmggLlugpGBiMVuXTck7OT8Nk8g
  • 初始化向量(IV,Base64编码):
LNP8U7pc6GjxzxAtgw4s3A==

尝试的操作

解码密钥/IV的命令(仅处理了IV)

iv=$( cat response.json | jq .iv -r | openssl base64 -d | xxd -p | tr -d '\n' )

解密命令

openssl aes-256-cbc -d  -in data.enc -out data.dec -K $key -iv $iv

错误结果

解密后得到乱码,示例:

^GÌ<8a>û)F"PEi~^K±jÔ^AcWSM
23NDwSOqovXSFGNfy3WatkCreYRd7kcWSM";

解决步骤

  1. 确保密钥和IV正确解码为十六进制
    你只处理了IV的解码,密钥也需要按同样方式解码:

    # 解码密钥
    key=$(echo "uHe2MCmggLlugpGBiMVuXTck7OT8Nk8g" | openssl base64 -d | xxd -p | tr -d '\n')
    # 解码IV(若从response.json读取,替换echo内容即可)
    iv=$(echo "LNP8U7pc6GjxzxAtgw4s3A==" | openssl base64 -d | xxd -p | tr -d '\n')
    

    验证长度:AES-256密钥解码后应为64位十六进制(32字节),IV应为32位十六进制(16字节)。

  2. 处理Base64格式的加密数据
    如果data.enc中存储的是Base64编码的字符串,需要让OpenSSL自动处理Base64,添加-base64参数:

    openssl aes-256-cbc -d -base64 -in data.enc -out data.dec -K $key -iv $iv
    
  3. 清理加密数据中的多余格式
    若Base64数据包含换行或空格,先清理后再解密:

    tr -d '\n' < data.enc > data_clean.enc
    openssl aes-256-cbc -d -base64 -in data_clean.enc -out data.dec -K $key -iv $iv
    
  4. 验证填充方式
    AES-CBC默认使用PKCS#7填充,如果加密时采用了其他填充方式,需添加-nopad参数,之后手动处理填充数据,但绝大多数场景下默认填充方式是兼容的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:40:34