data关键词太多了,直接搜索antiEncrypt和secretKey
在这里打上断点,点击分页
点击下一步
这里很像是解密方法,但是又不是
继续走,一直点下一步直到进入这个main.js文件里面
这段代码就是核心代码
这就是解密方法
主要是两个解密方法
都是标准解密,直接导包就行
window = global;
const JSEncrypt = require('jsencrypt');
function rsaDecrypt(n, x) {
var e = new JSEncrypt;
e['setPrivateKey'](x);
var o = e['decrypt'](n);
return o
}
function AESDecrypt(key, encryptedData) {
const encoder = new TextEncoder();
const decoder = new TextDecoder();
// 将Base64编码的加密数据转换为Uint8Array
const encryptedBytes = Uint8Array.from(atob(encryptedData), char => char.charCodeAt(0));
// 从加密数据中提取初始化向量(IV)和实际加密数据
// IV通常是前16字节(128位)
const iv = encryptedBytes.slice(0, 16);
const data = encryptedBytes.slice(16);
// 从原始密钥创建CryptoKey对象
return crypto.subtle.importKey(
"raw",
encoder.encode(key),
{ name: "AES-CTR" },
false,
["decrypt"]
).then(cryptoKey => {
// 使用AES-CTR模式进行解密
return crypto.subtle.decrypt(
{ name: 'AES-CTR', counter: iv, length: 128 },
cryptoKey,
data
);
}).then(decryptedBuffer => {
// 将解密后的ArrayBuffer转换为字符串并返回
console.log(decoder.decode(decryptedBuffer));
});
}