支付宝小程序使用AES解密
1.引入的crypto-js文件夹下载地址
链接: https://pan.baidu.com/s/13jxSATasnWv_Iox8dOHzUQ 提取码: yv3t
下载成功之后放在utils文件夹下
2.在utils文件夹中新建utils.js文件
const CryptoJS = require('../utils/crypto-js'); //引用AES源码js
function Encrypt (word) { //加密
var keyStr = '9b989a98e1574a19';
var key = CryptoJS.enc.Utf8.parse(keyStr);
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
return encrypted.toString();
}
//解密
function Decrypt (word) {
var keyStr = '9b989a98e1574a19';
var key = CryptoJS.enc.Utf8.parse(keyStr);
var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}
module.exports = {
Decrypt,
Encrypt
}
3.解密的文件
//引入utils.js
const utils = require('../../utils/util.js')
对后台返回的加密数据(类似于这种58vDC+ceIjxMub---)进行解密
var res = JSON.parse(utils.Decrypt(res)) ;
备注:
对后台返回数据进行解密后是一个空数组,和后台配合调试之后,发现后台对数据加密后因加密字符串过长导致传过来的加密字符串不全。