收藏
回答

encryptedData解密失败

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 工具 6.6.7 2.0.0

在执行

decoded += decipher.final('utf8')

的时候提示错误

(node:26500) UnhandledPromiseRejectionWarning: Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt

请问是什么原因呢?


具体代码如下:

WXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) {

// base64 decode

var sessionKey = Buffer.from(this.sessionKey, 'base64')

encryptedData = Buffer.from(encryptedData, 'base64')

iv = Buffer.from(iv, 'base64')


// try {

// 解密

var decipher = crypto.createDecipheriv('aes-128-cbc', sessionKey, iv)

// 设置自动 padding 为 true,删除填充补位

decipher.setAutoPadding(true)

var decoded = decipher.update(encryptedData, 'binary', 'utf8')

decoded += decipher.final('utf8')

decoded = JSON.parse(decoded)


// } catch (err) {

//   throw new Error('Illegal Buffer')

// }


if (decoded.watermark.appid !== this.appId) {

throw new Error('Illegal Buffer')

}


return decoded

}


回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容