- 安装crypto-js: “npm install crypto-js --save-dev”
- 在项目中新建一个aes.js文件
import CryptoJS from 'crypto-js'
let KEY = CryptoJS.enc.Utf8.parse('qwedasda')
let IV = CryptoJS.enc.Utf8.parse('dasdas12312')
// 加密
export function Encrypt (word, keyStr, ivStr) {
let key = KEY
let iv = IV
if (keyStr) {
key = CryptoJS.enc.Utf8.parse(keyStr)
iv = CryptoJS.enc.Utf8.parse(ivStr)
}
let srcs = CryptoJS.enc.Utf8.parse(word)
let encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
// return encrypted.toString()
return encrypted.ciphertext.toString().toUpperCase()
}
// 解密
export function Decrypt (word, keyStr, ivStr) {
let key = KEY
let iv = IV
if (keyStr) {
key = CryptoJS.enc.Utf8.parse(keyStr)
iv = CryptoJS.enc.Utf8.parse(ivStr)
}
let encryptedHexStr = CryptoJS.enc.Hex.parse(word)
let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr)
let decrypt = CryptoJS.AES.decrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8)
return decryptedStr.toString()
}
- 在需要使用加密解密方法的vue组件中使用import引入aes.js文件即可使用了
import {Decrypt,Encrypt} from '@/assets/js/aes.js'
// Encrypt 加密
let a = Eecrypt(a);
console.log(a);
// Decrypt 解密
let a = Decrypt(a);
console.log(a);