微信小程序crypto-js AES 加解密数据
发表时间:2020-10-10
发布人:葵宇科技
浏览次数:212
微信小程序在与后台交互数据过程中,敏感数据需要加解密,本篇博客介绍在微信小程序中如何使用 crypto.js 中的 AES 算法加解密数据
使用crypto.js加解密详解:https://blog.csdn.net/Umbrella_Um/article/details/99686988
AES加密算法的详细介绍与实现:https://blog.csdn.net/qq_28205153/article/details/55798628
1、引入crypto-js.js
crypto.js地址:https://blog-static.cnblogs.com/files/gygg/crypto-js.js
utils文件夹下新建crypto-js.js文件
2、封装crypto.js加解密
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var
CryptoJS = require(
'/crypto-js.js'
);
// 密钥 16 位
var
key =
'skdidhjdksle2345'
;
// 初始向量 initial vector 16 位
var
iv =
'skdidhjdksle2345'
;
// key 和 iv 可以一致
key = CryptoJS.enc.Utf8.parse(key);
iv = CryptoJS.enc.Utf8.parse(iv);
//加密
function
encrypted(param) {
var
encrypted = CryptoJS.AES.encrypt(param, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
encrypted = encrypted.toString();
return
encrypted;
}
//解密
function
decrypted(param) {
var
decrypted = CryptoJS.AES.decrypt(param, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
decrypted = CryptoJS.enc.Utf8.stringify(decrypted);
return
decrypted;
}
module.exports = {
encrypted: encrypted,
decrypted: decrypted,
}
tips:key和iv和后端开发人员沟通后保持一致
3、使用crypto.js
js中引入crypto
01
var
crypto = require(
'../../utils/crypto.js'
);
//注意路径是否正确
调用加解密方法
01
02
console.log(crypto.encrypted(
"福田区"
))
//加密
console.log(crypto.decrypted(
"ZOrm989bMUvrC4E2YHrCYQ=="
))
//解密
控制台输出
End!