baidu-reporter/js/mkd_v2_link_submit.js

155 lines
5.3 KiB
JavaScript
Raw Normal View History

2025-03-30 22:49:37 +08:00
var CryptoJS = require('./js/crypto-js.js');
function getNewKey(as){
/**
* encryptedStr(SHA3-256) ---> f25f1614appsapi2
* encryptedValue ---> 49d3a9685870cc30f63330b8136c7adfdb8859c6b538308992a1c9a456db2e59
*
* encryptedValue(MD5) ---> 5e4ebc8cappsapi2
* encryptedValue ---> c30b8b5289e46489598de382a658cc7f
*/
var encryptedStr = as + "appsapi2";
var r = as.substr(as.length - 1, 1);
switch (true) {
case ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'a', 'b', 'c', 'd', 'e', 'f', 'g'].includes(r):
encryptedValue = CryptoJS.MD5(encryptedStr).toString();
break;
case ['H', 'I', 'J', 'K', 'L', 'M', 'N', 'h', 'i', 'j', 'k', 'l', 'm', 'n'].includes(r):
encryptedValue = CryptoJS.SHA1(encryptedStr).toString(CryptoJS.enc.Hex);
break;
case ['O', 'P', 'Q', 'R', 'S', 'T', 'o', 'p', 'q', 'r', 's', 't'].includes(r):
encryptedValue = CryptoJS.SHA256(encryptedStr).toString(CryptoJS.enc.Hex);
break;
case ['U', 'V', 'W', 'X', 'Y', 'Z', 'u', 'v', 'w', 'x', 'y', 'z'].includes(r):
encryptedValue = CryptoJS.SHA512(encryptedStr).toString(CryptoJS.enc.Hex);
break;
case ['0', '1', '2', '3', '4'].includes(r):
encryptedValue = CryptoJS.SHA3(encryptedStr, { outputLength: 256 }).toString(CryptoJS.enc.Hex);
break;
case ['5', '6', '7', '8', '9'].includes(r):
encryptedValue = CryptoJS.SHA3(encryptedStr, { outputLength: 512 }).toString(CryptoJS.enc.Hex);
break;
default:
encryptedValue = e;
}
var key = encryptedValue.slice(0, 16);
return key;
}
function aesEncrypt(t, key) {
var r = key
, o = CryptoJS.enc.Utf8.parse(r)
, i = CryptoJS.enc.Utf8.parse(t)
, r = CryptoJS.AES.encrypt(i, o, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.ZeroPadding
});
return r.toString()
}
function getRzData(backstr, ac_c){
var rzData = {
"common": {
"cl": [],
"mv": [],
"sc": [],
"kb": [],
"sb": [],
"sd": [],
"sm": [],
"cr": {
"screenTop": 0,
"screenLeft": 0,
"clientWidth": 1903,
"clientHeight": 395,
"screenWidth": 1920,
"screenHeight": 1080,
"availWidth": 1920,
"availHeight": 1032,
"outerWidth": 1920,
"outerHeight": 1032,
"scrollWidth": 1903,
"scrollHeight": 1903
},
"simu": 0
},
"backstr": backstr,
"captchalist": {
"spin-0": {
"mv": [
{
"t": 1691824376147,
"fx": 1001,
"fy": 295
},
{
"t": 1691824376435,
"fx": 1002,
"fy": 295
}
],
"ac_c": ac_c,
"cl": [
{
"t": 1691824376212,
"x": 1002,
"y": 295
}
],
"p": {},
"cr": {
"left": 806,
"top": 40,
"width": 290,
"height": 280
},
"back": {
"left": 875,
"top": 84,
"width": 152,
"height": 152
}
}
}
}
return rzData;
}
function getTrackAn(an_spin_0, c_value){
const i = Date.now();
let n, o = 0, s = "0";
let zeroNum = "";
for (let i = 0; i < c_value; i++) {
zeroNum += "0";
}
for (; s !== zeroNum && true; )
s = CryptoJS.SHA1(an_spin_0 + o).toString().substring(0, c_value),
o++;
return n = Date.now() - i,
{
t: n,
an: o - 1
}
}
function getFs1(backstr, ac_c, as, track_p){
var rzData = getRzData(backstr, ac_c, track_p);
var fs_1 = aesEncrypt(JSON.stringify(rzData), getNewKey(as));
return fs_1;
}
function getFs2(backstr, ac_c, as){
//var track_p = getTrackAn(an_spin_0, c_value);
var fs_params = {
common_en: getFs1(backstr, ac_c, as),
backstr: backstr
};
var fs_2 = aesEncrypt(JSON.stringify(fs_params), getNewKey(as));
return fs_2;
}
//var backstr = "2333-kNbq8pYj9qwXDEPyB/K7+sEOCG56rn6WxPRL5MVFf9wjuFjFY+v4eiP21GmXN0/ykYmC7H0irXZOYxsTwIARXTZHjZWVymoqqVA2nNL6/s7aAbbr0WPYCn40XHTCNOBMWONN760VzD2oj8NlJ4SpJz7TOKPeEguv0uvGa4i0v4vgYTSrdNZ2+wz5cZREo6Hf+Mk9zDsy20SEeqJ/9PAwDmH25TvAMQX7Pnb5aMxfHT7GX5nwMPFHlIJHJQ2qI7AwmBRiY0Ei3PoEj8auHGxd9UULDF39Zet+o3AGquoMPrsqD1wrS+Kdn0dp4Q6oxiy10pmVc3uKe+v0M2Nd0LRhbhaukkeTL9bNR4bHz+rpuia8Ki9u02RWPm6NySco6lJ9n/s0lZGDb0WcD6+yRpsdSbwTWCAmxsDA6aaYOsPa/T5tDcqm01XWgl/oir9fhiYNJ5Ys9AW4jKCp7U2r63CvftFhg7hR2gdzYgFwtVQvaSSp5cw5b5+T22k+1nPyvszKIQXgbsdf+pxhV4oy/3cKZgCWnOV16LxSd0QXJmZzGYxpHjJaJ6HHAmh8UhspFeWG8Hwu8WPwEfk/hyMYx8xygxknoYKlHny6FejCSqcfVyLPlmmgzsm48snssFwN/OEJnGODd23gPWReFX+VY4ceQN/zSC0VvPiEEhWEl0jAQ1lGsLm7M8eSALbFxp0IcD7tXBsieG0P8oYHm2BorLAe/Q==";
//var ac_c = 0.55;
//var as = "f25f1614";
//get_fs_2(as);