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
}
上一篇:key属性的作用


下一篇:Unity性能优化简记