最近项目上线之前安全检查没有通过,原因是密码明文传输给后台了,最终采用了ASE加密算法,此处做记录。
引入插件
npm install crypto-js
封装方法
将加密和解密封装成公共方法
import Vue from 'vue'
import CryptoJS from 'crypto-js'
export default {//加密
encrypt(word, keyStr){
keyStr = keyStr ? keyStr : '123343';
var key = CryptoJS.enc.Utf8.parse(keyStr);//Latin1 w8m31+Yy/Nw6thPsMpO5fg==
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();
},
//解密
decrypt(word, keyStr){
keyStr = keyStr ? keyStr : '123343';
var key = CryptoJS.enc.Utf8.parse(keyStr);//Latin1 w8m31+Yy/Nw6thPsMpO5fg==
var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}
}
调用加密解密
import encry from ‘@/utils/encryptionCommon’
console.log("加密后"+encry.encrypt("123",'15f0'))
//第一个变量为要加密的值,第二个为加密密钥
console.log("解密后"+encry.decrypt("+lB4Y8p+nEeVmkEWQdEgeA==",'15f0'))