加密 Crypto
依赖
npm i crypto-js --save
导入
import ENV from '@/config/env'
const CryptoJS = require('crypto-js');
ENV.web 生成加密key的拼接字符串
ENV.iv 生成加密偏移量的字符串
加密
export function Encrypt(k, text){
const DecryptKey = (k + ENV.web).substring(0, 16);
const key = CryptoJS.enc.Utf8.parse(DecryptKey);
const iv = CryptoJS.enc.Utf8.parse(ENV.iv);
let encrypted = CryptoJS.AES.encrypt(
text.toString(),
key,
{
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}
);
return encrypted.ciphertext.toString();
}
解密
export function Decrypt(k, text){
const DecryptKey = (k + ENV.web).substring(0, 16);
const key = CryptoJS.enc.Utf8.parse(DecryptKey);
const iv = CryptoJS.enc.Utf8.parse(ENV.iv);
let encryptedHexStr = CryptoJS.enc.Hex.parse(text);
let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
let decrypt = CryptoJS.AES.decrypt(
srcs,
key,
{
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}
);
return decrypt.toString(CryptoJS.enc.Utf8);
}