微信小程序使用AES加密和解密的方法
1)、首先把aes.js放在utils文件夹里面(首先需要注意的是在aes.js文件里面要暴露一下这个变量module.exports = CryptoJS;
)
2)、然后再在utils文件里面建立一个public.js的文件,public.js封装号解密和加密的方法如以下的代码片段:
var CryptoJS = require('aes.js'); //引用AES源码js
var key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF");//十六位十六进制数作为秘钥
var iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412');//十六位十六进制数作为秘钥偏移量
//解密的方法
function Decrypt(word){
//console.log(word);
// var encryptedHexStr = CryptoJS.enc.Hex.parse(word);
// var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
// console.log(encryptedHexStr);
// console.log(key);
// console.log(iv);
var decrypt = CryptoJS.AES.decrypt(word, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
//加密的方法
function Encrypt(word) {
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
//return encrypted.ciphertext.toString().toUpperCase(); //这个是基础的16位16进制的加密返回值
return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
}
module.exports.Decrypt = Decrypt;
module.exports.Encrypt = Encrypt;
3)、然后在自己的组件里面测试使用,片段代码如下:
// pages/newsUserLead/newsUserLead.js
var time = require('../../utils/util.js'); //时间戳转换时间格式的方法;
var Dec = require('../../utils/public.js'); //aes加密与解密封装的方法
var RSA = require('../../utils/wx_rsa.js'); //rsa的解密和加密方法;
Page({
/**
* 页面的初始数据
*/
data: {
movies: [
],
beforeColor: "#f7dee3",//指示点颜色
afterColor: "#e492a2",//当前选中的指示点颜色
autoplay:false,
display: "none",
booleans:''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that = this;
wx.setStorageSync("mollySession", "");
wx.setStorageSync("isBandPh", false);
wx.removeStorageSync("orderData");
wx.removeStorageSync("detailData");
wx.removeStorageSync("sunbinfoData");
wx.removeStorageSync("allcount");
// 这个是使用aes进行加密和解密的方法和列子
console.log(Dec.Encrypt("23435ko"),"这个是什么东西呢,啊啊啊啊~~");
console.log(Dec.Decrypt("JDhP6QgHMve3UfdhXoeSRQ=="),"这个是需要解密的东西啊哈哈~")
},
})
加密的结果:JDhP6QgHMve3UfdhXoeSRQ== 这个是什么东西呢,啊啊啊啊~~
解密的结果:23435ko 这个是需要解密的东西啊哈哈~