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

AES-256-CBC加密Payload解密咨询:密钥尺寸错误问题

解密Webhook Payload中data字段的步骤

1. 解析data字段结构

data字段是Base64编码的JSON结构,先解码获取核心参数:

echo "eyJpdiI6ImJLeURnZklsMFcrdWpEMjYrZzFkMGc9PSIsInZhbHVlIjoiZy9lM3lXZkNBaHA0MFVwVlFDT3BUSVpIaWxrbTBLS213cGtVazQwU2dYTGZsc0s1eXpXMGhpbXYwUTdqSkRTc2ZQTXdrUlZvS1ZTU0piNlpybUN0eGxDRHcwUHh4Nkw0aklsUEhWSFdQcXYyRTl5RTZzNm9VRDgwNjFONExneGoiLCJtYWMiOiJmNTkwNzRhNTk3MTc0NTY1OGYwNWNjYjA0YWJjODAyZjVmNTYzYjExZDljY2JjOTI3NjBlZGZkZjc3NGRkNzEyIiwidGFnIjoiIn0=" | base64 -d

解码后得到的JSON包含三个关键字段:

  • iv:Base64编码的AES初始向量(IV)
  • value:Base64编码的密文
  • mac:消息认证码(用于验证数据完整性)

2. 解决密钥尺寸错误

你提供的密钥WCPDMPxUon4u5kwZrw1LKG3oak4av64mlfEt4mgeF5w=是Base64格式,需先解码为二进制并验证长度:

echo "WCPDMPxUon4u5kwZrw1LKG3oak4av64mlfEt4mgeF5w=" | base64 -d | wc -c

AES-256要求密钥长度为32字节,若上述命令输出不是32,说明密钥复制不全或格式错误:

  • 检查密钥是否完整复制
  • 若系统给出的是明文密钥而非Base64,直接将明文转UTF-8字节后检查长度

3. 用OpenSSL执行解密

第一步:准备二进制文件

  • 导出IV到二进制文件:
    echo "bKyDgfIl0W+ujD26+g1d0g==" | base64 -d > iv.bin
    
  • 导出密文到二进制文件:
    echo "g/e3yWfCAhp40UpVQCOpTIZHilk0KKmwpkUk40SgXLfsk5yzW0himv0Q7jJDSsfPMwkRVOKVS SJb6ZrmCtxlcDw0Pxx6L4jIlPHVHW Pqv2E9yE6s6oUD8061N4Gxg" | base64 -d > ciphertext.bin
    
  • 导出密钥到二进制文件:
    echo "WCPDMPxUon4u5kwZrw1LKG3oak4av64mlfEt4mgeF5w=" | base64 -d > key.bin
    

第二步:执行解密命令

openssl enc -d -aes-256-cbc -in ciphertext.bin -out plaintext.txt -iv $(cat iv.bin) -K $(cat key.bin | xxd -p -c 32)
  • -K参数需要密钥的十六进制字符串,xxd -p -c 32负责将二进制密钥转为十六进制格式
  • 解密后的原始数据会保存到plaintext.txt中

4. (可选)验证数据完整性

若需确认数据未被篡改,可使用密钥对明文+IV计算HMAC-SHA256,对比mac字段的值:

cat plaintext.txt iv.bin | openssl dgst -sha256 -hmac $(cat key.bin)

输出的哈希值应与mac字段完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:43:24