import CryptoJS from 'crypto-js'; const setting = { encPassword: 'emhpcnVpemh3eQ==' // 数据传输的密钥 }; /** * AES 加密 * @param {*} src 明文 * @returns 密文 */ export function aesEncrypt(src: string) { const key = CryptoJS.enc.Utf8.parse(setting.encPassword); // 加密 var encrypted = CryptoJS.AES.encrypt(src, key, { iv: key, mode: CryptoJS.mode.CFB, padding: CryptoJS.pad.NoPadding }); return encodeURIComponent(encrypted.toString()); // URL 编码 } /** * AES 解密 * @param {*} result 密文 * @param {*} keyWord 密钥 * @returns 明文 */ export function aesDecrypt(result: any) { const key = CryptoJS.enc.Latin1.parse(setting.encPassword); var iv = key; // 解密逻辑 var decryptd = CryptoJS.AES.decrypt(decodeURIComponent(result), key, { // URL 解码 iv: iv, mode: CryptoJS.mode.CFB, padding: CryptoJS.pad.NoPadding }); return decryptd.toString(CryptoJS.enc.Utf8); } /** * Base64 加密 * @param {*} src 明文 * @returns 密文 */ export function base64Encrypt(src: string) { const encodedWord = CryptoJS.enc.Utf8.parse(src); return CryptoJS.enc.Base64.stringify(encodedWord); }