1.安装:crypto-js
npm install crypto-js --save-dev
2.封装加解密
- 在项目中创建aes.js( src/assets/js/aes.js)
import CryptoJS from 'crypto-js/crypto-js'
// 默认的 KEY 与 iv 如果没有给
const key = CryptoJS.enc.Utf8.parse("123456");//""中与后台一样 密码
const iv = CryptoJS.enc.Utf8.parse('654321');//""中与后台一样 偏移量
/**
* AES加密 :字符串 key iv 返回base64
*/
export function Encrypt(word) {
let srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return CryptoJS.enc.Hex.stringify(encrypted.ciphertext);
}
/**
* AES 解密 :字符串 key iv 返回base64
* */
export function Decrypt(word) {
let base64 = CryptoJS.enc.Hex.parse(word);
let src = CryptoJS.enc.Base64.stringify(base64);
var decrypt = CryptoJS.AES.decrypt(src, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
3.在需要加解密的页面中调用
- 在线AES加密解密(工具):http://tool.chacuo.net/cryptaes
- 对应参数【AES加密模式:CBC,填充:pkcs7padding,数据块:128、密码:123456、偏移量:654321、输出:Hex、字符集:Utf8】
import {Decrypt,Encrypt} from '@/assets/js/utils.js'
mounted() {
// Encrypt 加密
console.log(Eecrypt('123456'));
// Decrypt 解密
console.log(Decrypt('123456'));
},