155 lines
5.3 KiB
JavaScript
155 lines
5.3 KiB
JavaScript
|
|
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);
|