前端項目中遇到須要對參數進行AES/CBC/PKCS5Padding加密,而後傳給後臺解密,將實現方法記錄下。前端
在vue項目終端中輸入下面命令安裝插件vue
npm install crypto-js --save-dev
複製代碼
在工具類中引用crypto-jsnpm
import CryptoJS from "crypto-js";
複製代碼
加密bash
export function Encrypt(word) {
let key = '密鑰要後後臺一致';
let iv = '偏移量要個後臺一致';
key = CryptoJS.enc.Utf8.parse(key);
iv = CryptoJS.enc.Utf8.parse(iv);
let srcs = CryptoJS.enc.Utf8.parse(word);
// 加密模式爲CBC,補碼方式爲PKCS5Padding(也就是PKCS7)
let encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
//返回base64
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
}
複製代碼
解密工具
export function Decrypt(word) {
let key = '密鑰要後後臺一致';
let iv = '偏移量要個後臺一致';
key = CryptoJS.enc.Utf8.parse(key);
iv = CryptoJS.enc.Utf8.parse(iv);
let base64 = CryptoJS.enc.Base64.parse(word);
let src = CryptoJS.enc.Base64.stringify(base64);
// 解密模式爲CBC,補碼方式爲PKCS5Padding(也就是PKCS7)
let decrypt = CryptoJS.AES.decrypt(src, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
複製代碼
在須要的界面引用utils.jsui
import { Encrypt, Decrypt} from '../utils'
複製代碼
使用代碼加密
//aes加密
let aesParams = Encrypt('a');
//解密
let aesParams1 = Decrypt('a');
``複製代碼