// 引入crypto-js包 import CryptoJS from 'crypto-js' /** * AES加密 * @param {any} word 加密數據 */ export const cryptoEncrypt = (word) => { var key = CryptoJS.enc.Utf8.parse(config.AES_KEY); var iv = CryptoJS.enc.Utf8.parse(config.AES_IV); var encrypted = ''; var srcs = '' if (typeof(word) == 'string') { srcs = word } else if (typeof(word) == 'object') {//對象格式的轉成json字符串 srcs = CryptoJS.enc.Utf8.parse(word); } encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }) return encrypted.ciphertext.toString(); } /** * AES解密 * @param {any} word 解密數據 */ export const cryptoDecrypt = (word) => { var key = CryptoJS.enc.Utf8.parse(config.AES_KEY); var iv = CryptoJS.enc.Utf8.parse(config.AES_IV); var encryptedHexStr = CryptoJS.enc.Hex.parse(word); var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); var decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); return decryptedStr.toString(); }