使用Node.js解密微信小程序的userInfo
const crypto = require("crypto")
function decryptData(encryptedData,sessionKey,iv,appId) {
iv = Buffer.from(iv,'base64')
encryptedData = Buffer.from(encryptedData,'base64')
sessionKey = Buffer.from(sessionKey,'base64')
try {
let decipher = crypto.createDecipheriv('aes-128-cbc',sessionKey,iv)
decipher.setAutoPadding(true)
var decoded = decipher.update(encryptedData,'binary','utf8')
decoded += decipher.final('utf8')
decoded = JSON.parse(decoded)
} catch(e) {
throw new Error('Illegal Buffer')
}
if (decoded.watermark.appid !== appId) {
throw new Error('Illegal Buffer')
}
return decoded
}