这个JavaScript脚本是一个实现加密登录请求的自动化工具,主要完成以下功能:
核心功能解析:
数据加密流程:
生成16位随机AES密钥(字母数字组合)
使用AES-ECB模式加密登录数据(包含手机号/密码)
用RSA公钥加密AES密钥
返回结构:{ value: AES加密数据, key: RSA加密后的AES密钥 }
加密细节:
javascript
// 生成安全的随机字符串(避免模偏置)
function generateRandomAlphanumericString(length){...}
// RSA加密AES密钥
function rsaEncryptAesKey(aesKeyString){
const encryptInstance = new JSEncrypt();
encryptInstance.setPublicKey(RSA_PUBLIC_KEY);
return encryptInstance.encrypt(JSON.stringify(aesKeyString));
}
// AES加密数据
const encryptedPayload = CryptoJS.AES.encrypt(dataToEncrypt, aesKeyWordArray, {
mode: CryptoJS.mode.ECB, // ECB模式
padding: CryptoJS.pad.Pkcs7
}).toString();
登录请求数据:
javascript
const dataToProcess = {
"phone": "13322223333", // 测试手机号
"password": "111111", // 测试密码
"code": "", // 验证码(空)
"leixing": 0, // 登录类型
"openkey": "" // 第三方密钥(空)
};
网络请求:
目标URL:https://api.shiquanyi.cn/recovery/account/loginForCode
使用Fetch API发送POST请求
Headers设置JSON内容类型
javascript
const requestOptions = {
method: "POST",
headers: myHeaders, // 包含Content-Type: application/json
body: JSON.stringify(encryptedOutput),
}; |