diff --git a/src/utils/tool.js b/src/utils/tool.js index c11ef738..0d2ee746 100644 --- a/src/utils/tool.js +++ b/src/utils/tool.js @@ -137,17 +137,22 @@ tool.crypto = { }, //AES加解密 AES: { - encrypt(data, secretKey){ + encrypt(data, secretKey, config={}){ + if(secretKey.length % 8 != 0){ + console.warn("[SCUI error]: 秘钥长度需为8的倍数,否则解密将会失败。") + } const result = CryptoJS.AES.encrypt(data, CryptoJS.enc.Utf8.parse(secretKey), { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.Pkcs7 + iv: CryptoJS.enc.Utf8.parse(config.iv || ""), + mode: CryptoJS.mode[config.mode || "ECB"], + padding: CryptoJS.pad[config.padding || "Pkcs7"] }) return result.toString() }, - decrypt(cipher, secretKey){ + decrypt(cipher, secretKey, config={}){ const result = CryptoJS.AES.decrypt(cipher, CryptoJS.enc.Utf8.parse(secretKey), { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.Pkcs7 + iv: CryptoJS.enc.Utf8.parse(config.iv || ""), + mode: CryptoJS.mode[config.mode || "ECB"], + padding: CryptoJS.pad[config.padding || "Pkcs7"] }) return CryptoJS.enc.Utf8.stringify(result); }