12345678910111213141516171819202122232425262728293031323334353637383940 |
- /**
- * Created by rd on 2017/5/4.
- */
- // 引入CryptoJS 路径依个人导入情况变动
- var Crypto = require('./cryptojs-master/cryptojs.js').Crypto;
- var app = getApp();
- function RdWXBizDataCrypt(appId, sessionKey) {
- this.appId = appId
- this.sessionKey = sessionKey
- }
- RdWXBizDataCrypt.prototype.decryptData = function(encryptedData, iv, appId, sessionKey) {
- // base64 decode :使用 CryptoJS 中 Crypto.util.base64ToBytes()进行 base64解码
- var encryptedData = Crypto.util.base64ToBytes(encryptedData)
- var key = Crypto.util.base64ToBytes(sessionKey);
- var iv = Crypto.util.base64ToBytes(iv);
- // 对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充
- var mode = new Crypto.mode.CBC(Crypto.pad.pkcs7);
- try {
- // 解密
- var bytes = Crypto.AES.decrypt(encryptedData, key, {
- asBpytes: true,
- iv: iv,
- mode: mode
- });
- var decryptResult = JSON.parse(bytes);
- } catch (err) {
- console.log(err)
- }
- return decryptResult
- }
- module.exports = RdWXBizDataCrypt
|