前言
在项目中,你可以使用 CryptoJS 来执行 AES 加密和解密操作。下面是一个简单的示例,展示了如何在 Vue 项目中使用 CryptoJS 进行 AES 加密和解密
首先,确保你已经安装了 CryptoJS。如果还没有安装,可以使用以下命令安装:
安装
npm install crypto-js
创建函数
import { CryptoJS } from 'crypto-js'
//加密函数
function Encrypt (content) {
// content 要加密的内容
// 初始化密钥(key)与偏移量(iv)的时候,必须对其进行转码,不然会报错,报错的原因可能是iv为undefined
// 偏移量,只有CBC模式才需要
const iv = '0000000000000000' //前后端约定
const secretKey = 'a90e7d2eb24c4b8b88994ab065e377d3' /* 前后端约定好的key */
const key = CryptoJS.enc.Utf8.parse(secretKey)
iv = CryptoJS.enc.Utf8.parse(iv)
const encrypt = CryptoJS.AES.encrypt(content, key, {
iv: iv,
mode: CryptoJS.mode.CBC, //AES加密的模式,常用的有ECB,CBC等
padding: CryptoJS.pad.Pkcs7, //填充方式,加密位数不够的时候填充方式
})
return encrypt.toString() //encrypt是一个对象,需要转换成字符串
}
//解密函数
function Decrypt (content) {
/* content 要解密的内容 */
let iv = '0000000000000000'
const secretKey = 'a90e7d2eb24c4b8b88994ab065e377d3' /* 前后端约定好的key */
const key = CryptoJS.enc.Utf8.parse(secretKey)
iv = CryptoJS.enc.Utf8.parse(iv)
const decrypt = CryptoJS.AES.decrypt(content, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return decrypt.toString(CryptoJS.enc.Utf8) //转换出来的参数是一个对象,需要将其转化为utf-8的字符串形式
}
使用
//使用函数
const originalText = '这是一段需要加密的文本' //需要加密的原始文本
const encryptedText = '' //加密后的文本
const decryptedText = '' //解密后的文本
encryptedText = Encrypt(originalText)
decryptedText = Decrypt(encryptedText)