第一步:安装插件
npm install crypto-js
yarn add crypto-js
第二步:封装方法到公共文件中
AES 加密有EBC、CBC两种模式;前者是基础的加密模式,后者是循环模式,更安全。
在项目的utils目录下,新建一个sm4.js作为公共文件使用
import CryptoJS from 'crypto-js'
// 加密函数
export function encryptData(data) {
const KEY = CryptoJS.enc.Hex.parse('key')//后端提供的key
const IV = CryptoJS.enc.Hex.parse('iv')//后端提供的iv
const encrypted = CryptoJS.AES.encrypt(
data,
KEY,
{
iv: IV,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}
)
return encrypted.toString()
}
// 解密函数
export function decryptData(data) {
const KEY = CryptoJS.enc.Hex.parse('34567890')
const IV = CryptoJS.enc.Hex.parse('657890')
const decrypted = CryptoJS.AES.decrypt(
data,
KEY,
{
iv: IV,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}
)
return CryptoJS.enc.Utf8.stringify(decrypted)
}
export default {
encryptData,
decryptData
}
第三步:引用方法
哪里需要就在哪里引用,举一个简单的示例:
1、首先引入文件
import {encryptData,decryptData} from "@/utils/AES.js";
2、
const encryptedData = encryptData(JSON.stringify('params'))
console.log(encryptedData, "加密");
const decryptedData = JSON.parse(decryptData(encryptedData))
// 解密后的数据
console.log(decryptedData,'解密')