|
|
@@ -1,36 +1,35 @@
|
|
|
-var crypto = require('crypto')
|
|
|
+var crypto = require("crypto");
|
|
|
|
|
|
function WXBizDataCrypt(appId, sessionKey) {
|
|
|
- this.appId = appId
|
|
|
- this.sessionKey = 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')
|
|
|
+ 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)
|
|
|
+ var decipher = crypto.createDecipheriv("aes-128-cbc", sessionKey, iv);
|
|
|
// 设置自动 padding 为 true,删除填充补位
|
|
|
- decipher.setAutoPadding(true)
|
|
|
+ decipher.setAutoPadding(true);
|
|
|
// var decoded = decipher.update(encryptedData, 'binary', 'utf8')
|
|
|
- var decoded = decipher.update(encryptedData, '', 'utf8')
|
|
|
- decoded += decipher.final('utf8')
|
|
|
-
|
|
|
- decoded = JSON.parse(decoded)
|
|
|
+ var decoded = decipher.update(encryptedData, "", "utf8");
|
|
|
+ decoded += decipher.final("utf8");
|
|
|
|
|
|
+ decoded = JSON.parse(decoded);
|
|
|
} catch (err) {
|
|
|
- throw new Error('Illegal Buffer')
|
|
|
+ throw new Error("Illegal Buffer");
|
|
|
}
|
|
|
|
|
|
if (decoded.watermark.appid !== this.appId) {
|
|
|
- throw new Error('Illegal Buffer')
|
|
|
+ throw new Error("Illegal Buffer");
|
|
|
}
|
|
|
|
|
|
- return decoded
|
|
|
-}
|
|
|
+ return decoded;
|
|
|
+};
|
|
|
|
|
|
-module.exports = WXBizDataCrypt
|
|
|
+module.exports = WXBizDataCrypt;
|