一、简介
最近在项目中,遇到要进行加解密字段的需求,跟后端、产品开会,约好个人信息等隐私字段需要加密传输。于是将目光聚焦到 crypto-js 上面。
二、安装
// pnpm
pnpm install crypto-js
// npm
npm install crypto-js
// yarn
yarn add crypto-js
三、定义工具类
在你的项目 src 目录下创建 utils 文件夹存放全局工具类。
// 引入
import CryptoJS from 'crypto-js'
// 加密
export function encrypt (word, keyStr, ivStr) {
keyStr = keyStr || '后端给你的key密钥'
ivStr = ivStr || '后端给你的iv偏移量'
const key = CryptoJS.enc.Utf8.parse(keyStr)
const iv = CryptoJS.enc.Utf8.parse(ivStr)
const srcs = CryptoJS.enc.Utf8.parse(word)
const encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return encrypted.toString()
}
// 解密
export function decrypt (word, keyStr, ivStr) {
if (!word) return {}
keyStr = keyStr || '后端给你的key密钥'
ivStr = ivStr || '后端给你的iv偏移量'
const key = CryptoJS.enc.Utf8.parse(keyStr)
const iv = CryptoJS.enc.Utf8.parse(ivStr)
const decrypted = CryptoJS.AES.decrypt(word, key, {
iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return decrypted.toString(CryptoJS.enc.Utf8)
}
四、使用
// 引入方法
import { encrypt, decrypt } from '@/utils.js'
// 使用
encrypt(password)
decrypt(idCardNumber)