vue中使用aes加密

2,481 阅读1分钟
  • 安装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);