","error":{"message":"The encrypted content gAAA...5pc= could not be verified. R...
错误信息
{"status":20109,"message":"余额不足,请充值"{"type":"error","error":{"message":"The encrypted content gAAA...5pc= could not be verified. Reason: Encrypted content could not be decrypted or parsed.","type":"invalid_request_error","code":400}},"result":null,"timestamp":1776240448899}
AI 解决方案
报错分析报告
1.错误翻译
原文:The encrypted content gAAA...5pc= could not be verified. Reason: Encrypted content could not be decrypted or parsed.
译文:加密内容gAAA...5pc=无法验证。原因:加密内容无法解密或解析。
2. 原因分析
invalid_request_error( code:400 ),说明请求携带的加密数据不符合预期格式或完整性要求。3.解决方案
const crypto = require('crypto');
/**
* 解密并验证加密内容(以AES-256-CBC为例)
* @param {string} encryptedB64 - Base64编码的加密内容(含IV前缀)
* @param {Buffer} key - 32字节(256位)密钥
* @returns {string} 解密后的明文
*/
function decryptVerifiedContent(encryptedB64, key) {
try {
// 1. 解码Base64并检查长度(IV占16字节)
const encryptedBuf = Buffer.from(encryptedB64, 'base64');
if (encryptedBuf.length < 16) throw new Error('加密内容过短(缺少IV)');
// 2. 提取IV(前16字节)和密文
const iv = encryptedBuf.subarray(0, 16);
const ciphertext = encryptedBuf.subarray(16);
// 3. 解密(使用CBC模式)
const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv);
let decrypted = decipher.update(ciphertext, null, 'utf8');
decrypted += decipher.final('utf8');
return decrypted;
} catch (err) {
throw new Error(`加密内容验证失败:${err.message}。请检查:1. 密钥正确性;2. 加密内容完整性;3. 算法一致性`);
}
}
// 使用示例(需替换为实际值)
const encryptedContent = 'gAAA...5pc='; // 原始加密内容
const secretKey = Buffer.from('your-32-byte-secret-key-here!123456', 'utf8'); // 32字节密钥
try {
const plaintext = decryptVerifiedContent(encryptedContent, secretKey);
console.log('解密成功:', plaintext);
} catch (err) {
console.error('错误:', err.message);
}
4. 预防措施
crypto、Python cryptography),禁止手动拼接加密数据。 推荐工具:
openssl enc -d命令本地验证加密内容(例:openssl enc -aes-256-cbc -d -in encrypted.bin -K $KEY -iv $IV); 注:若“余额不足”为业务错误,需联系平台充值;本分析仅针对技术报错(invalid_request_error)。