2025/12/10 修改解密方法

dev-2.0
zhaohongyu 2025-12-10 11:42:05 +08:00
parent 810a14d1f7
commit 03941fa5a5
1 changed files with 31 additions and 19 deletions

View File

@ -3,27 +3,36 @@ import CryptoJS from "crypto-js";
const key = CryptoJS.enc.Utf8.parse("daac3ae52eff4cec"); // 16位 const key = CryptoJS.enc.Utf8.parse("daac3ae52eff4cec"); // 16位
const encrypt = (word) => { const encrypt = (word) => {
let encrypted = ""; let encrypted = "";
if (typeof word === "string") { if (typeof word === "string") {
const src = CryptoJS.enc.Utf8.parse(word); const src = CryptoJS.enc.Utf8.parse(word);
encrypted = CryptoJS.AES.encrypt(src, key, { encrypted = CryptoJS.AES.encrypt(src, key, {
mode: CryptoJS.mode.ECB, mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7, padding: CryptoJS.pad.Pkcs7,
}); });
} else if (typeof word === "object") { } else if (typeof word === "object") {
// 对象格式的转成json字符串 // 对象格式的转成json字符串
const data = JSON.stringify(word); const data = JSON.stringify(word);
const src = CryptoJS.enc.Utf8.parse(data); const src = CryptoJS.enc.Utf8.parse(data);
encrypted = CryptoJS.AES.encrypt(src, key, { encrypted = CryptoJS.AES.encrypt(src, key, {
mode: CryptoJS.mode.ECB, mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7, padding: CryptoJS.pad.Pkcs7,
}); });
} }
return encrypted.ciphertext.toString(CryptoJS.enc.Base64); return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
}; };
function decryptAes(params) { function decryptAes(params) {
try { try {
// 如果params不是对象或为空直接返回
if (!params || typeof params !== "object") {
return params;
}
// 如果没有encryptData字段直接返回原参数
if (!params.encryptData) {
return params;
}
const key = CryptoJS.enc.Utf8.parse("fa4e0fae59534676"); // 16 bytes key for AES const key = CryptoJS.enc.Utf8.parse("fa4e0fae59534676"); // 16 bytes key for AES
const bytes = CryptoJS.AES.decrypt(params.info, key, { const bytes = CryptoJS.AES.decrypt(params.info, key, {
@ -31,7 +40,10 @@ function decryptAes(params) {
padding: CryptoJS.pad.Pkcs7, padding: CryptoJS.pad.Pkcs7,
}); });
const decryptedText = bytes.toString(CryptoJS.enc.Utf8); const decryptedText = bytes.toString(CryptoJS.enc.Utf8);
return JSON.parse(decryptedText); const decryptedData = JSON.parse(decryptedText);
// 递归调用解密
return decryptAes(decryptedData);
} catch (e) { } catch (e) {
console.info(e); console.info(e);
} }