1. 程式人生 > 其它 >aes加/解密

aes加/解密

import CryptoJS from 'crypto-js'

// key和iv要與後臺保持一致
const keyStr = '0123456789ABCDEF' // 要求16個字元
const ivStr = '0123456789ABCDEF' // 要求16個字元

/**
* 加密
* @param word
* @return {string}
*/
function encrypt (src) {
// 16進位制字串 —>WordArray物件
// let key = CryptoJS.enc.Hex.parse(keyStr)
// WordArray 物件 —>16進位制字串
let key = CryptoJS.enc.Utf8.parse(keyStr)
let iv = CryptoJS.enc.Utf8.parse(ivStr)
let enc = CryptoJS.AES.encrypt(src, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return enc.ciphertext.toString()
}
/**
* 解密
* @param word
* @return {string}
*/
function decrypt (src) {
let key = CryptoJS.enc.Utf8.parse(keyStr)
let iv = CryptoJS.enc.Utf8.parse(ivStr)
let dec = CryptoJS.AES.decrypt(CryptoJS.format.Hex.parse(src), key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return CryptoJS.enc.Utf8.stringify(dec)
}

export default {
encrypt,
decrypt
}