import CryptoJS from 'crypto-js'
|
|
const KEY = process.env.VUE_APP_ENCRYPT_REQUEST_KEY
|
const IV = process.env.VUE_APP_ENCRYPT_REQUEST_IV
|
|
export default {
|
/**
|
* 加密
|
*
|
* @param plaintext 明文
|
* @returns {string}
|
*/
|
encrypt (plaintext) {
|
const key = CryptoJS.enc.Utf8.parse(KEY)
|
const secretData = CryptoJS.enc.Utf8.parse(plaintext)
|
const encrypted = CryptoJS.AES.encrypt(
|
secretData,
|
key,
|
{
|
iv: CryptoJS.enc.Utf8.parse(IV),
|
mode: CryptoJS.mode.CBC,
|
padding: CryptoJS.pad.Pkcs7
|
}
|
)
|
return encrypted.toString()
|
},
|
/**
|
* 解密
|
*
|
* @param cipherText 密文
|
* @returns {*}
|
*/
|
decrypt (cipherText) {
|
const key = CryptoJS.enc.Utf8.parse(KEY)
|
const decrypt = CryptoJS.AES.decrypt(
|
cipherText,
|
key,
|
{
|
iv: CryptoJS.enc.Utf8.parse(IV),
|
mode: CryptoJS.mode.CBC,
|
padding: CryptoJS.pad.Pkcs7
|
}
|
)
|
return CryptoJS.enc.Utf8.stringify(decrypt).toString()
|
}
|
}
|