数据加密
对称加解密
加密
en(value: T)
value
加密数据
点击查看
import CryptoJS from 'crypto-js'
import secretKey from '@/config/secretKey'
/**
* @Author: Mankeung
* @description: 加密
* @param {T} value 加密数据
* @return {string}
*/
const en = <T>(value: T): string => {
try {
const srcs = CryptoJS.enc.Utf8.parse(JSON.stringify(value))
const encrypted = CryptoJS.AES.encrypt(srcs, secretKey.crypot.key, {
iv: secretKey.crypot.iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return encrypted.toString()
} catch (error: any) {
console.error(`加密数据${value}出错了~`)
throw new Error(error)
}
}
- 例子:
const str = this.$mk.utils.crypto.en({
name: 'mankeung'
})
console.log(str)
解密
de(en: string)
en
待解密数据
点击查看
/**
* @Author: Mankeung
* @description: 解密
* @param {string} en
* @return {unknown}
*/
const de = (en: string): unknown => {
if (!en) throw new Error('en参数不能为空')
try {
const decrypt = CryptoJS.AES.decrypt(en, secretKey.crypot.key, {
iv: secretKey.crypot.iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8)
return JSON.parse(decryptedStr.toString())
} catch (error: any) {
console.log('en参数不能为空')
throw new Error(error)
}
}
- 例子:
const str = this.$mk.utils.crypto.en({
name: 'mankeung'
})
const newStr = this.$mk.utils.crypto.de(str)
console.log(newStr)