This commit is contained in:
张成
2025-11-21 16:53:49 +08:00
commit 8309808835
286 changed files with 32656 additions and 0 deletions

34
tool/WXBizDataCrypt.js Normal file
View File

@@ -0,0 +1,34 @@
var crypto = require("crypto");
function WXBizDataCrypt(appId, sessionKey) {
this.appId = appId;
this.sessionKey = sessionKey;
}
WXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) {
// base64 decode
var sessionKey = new Buffer(this.sessionKey, "base64");
encryptedData = new Buffer(encryptedData, "base64");
iv = new Buffer(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;
};
module.exports = WXBizDataCrypt;