版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiongdaandxiaomi/article/details/84339793
在实际开发中,会用到前端请求后台接口时对请求参数进行加密处理。
直接上代码:
import CryptoJS from "crypto-js";
//秘钥
const CRYPTOJSKEY= "abcdefgabcdefg12";
// 加密
encrypt(plaintText) {
var plaintText = plaintText;
var options = {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
};
var key = CryptoJS.enc.Utf8.parse(CRYPTOJSKEY);
var encryptedData = CryptoJS.AES.encrypt(plaintText, key, options);
var encryptedBase64Str = encryptedData.toString().replace(/\//g, "_");
encryptedBase64Str = encryptedBase64Str.replace(/\+/g,"-");
return encryptedBase64Str;
},
//解密
decrypt(encryptedBase64Str) {
var vals = encryptedBase64Str.replace(/\-/g, '+').replace(/_/g, '/');
var options = {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
};
var key = CryptoJS.enc.Utf8.parse(CRYPTOJSKEY);
var decryptedData = CryptoJS.AES.decrypt(vals, key, options);
var decryptedStr = CryptoJS.enc.Utf8.stringify(decryptedData);
return decryptedStr
},
在vue中使用axios请求时对参数进行加密处理
import utilFile from './util.js';
post (url, data) {
data = utilFile.encrypt(JSON.stringify(data));
// console.log(data);
return axios({
method: 'post',
url: baseURL + url,
params: {
x:'a' + data
},
// timeout: 30000,
withCredentials: true,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'token':getSessiontoken('token')
}
})
},