空气质量在线检测平台 js 逆向)(aqistudy)

# **空气质量在线检测平台 js 逆向 全新版本

  • 学习内容:

(多了提个eval()加密)https://www.aqistudy.cn/apinew/aqistudyapi.php:**

学习内容:

**空气质量在线检测平台js逆向**
该站点很适合提升,难度中。
import pprint
import execjs
import requests

ctx = execjs.compile(open('./aqistudyTest.js', 'r', encoding='utf-8').read())
method = 'GETDATA'
obj = {
    'city': "广州",
    'endTime': "2021-03-31 9:00:00",
    'startTime': "2021-03-30 9:00:00",
    'type': "HOUR",
}
secretkey = ctx.call('pNg63WJXHfm8r', method, obj)
print(secretkey)
formdata = {
    'h0lgYxgR3': secretkey
}
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
}
url = 'https://www.aqistudy.cn/apinew/aqistudyapi.php'
response = requests.post(url=url, data=formdata)
response.encoding = response.apparent_encoding
print(response.text)
result = ctx.call('dX506x9jVK3vuMMhoz6ZXx', response.text)
pprint.pprint(result)

输出:空气质量在线检测平台 js 逆向)(aqistudy)_第1张图片
下面是反向破解过程中的代码:

function Base64() {
_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
this.encode = function(a) {
    var c, d, e, f, g, h, i, b = "",
    j = 0;
    for (a = _utf8_encode(a); j < a.length;) c = a.charCodeAt(j++),
    d = a.charCodeAt(j++),
    e = a.charCodeAt(j++),
    f = c >> 2,
    g = (3 & c) << 4 | d >> 4,
    h = (15 & d) << 2 | e >> 6,
    i = 63 & e,
    isNaN(d) ? h = i = 64 : isNaN(e) && (i = 64),
    b = b + _keyStr.charAt(f) + _keyStr.charAt(g) + _keyStr.charAt(h) + _keyStr.charAt(i);
    return b
},
this.decode = function(a) {
    var c, d, e, f, g, h, i, b = "",
    j = 0;
    for (a = a.replace(/[^A-Za-z0-9\+\/\=]/g, ""); j < a.length;) f = _keyStr.indexOf(a.charAt(j++)),
    g = _keyStr.indexOf(a.charAt(j++)),
    h = _keyStr.indexOf(a.charAt(j++)),
    i = _keyStr.indexOf(a.charAt(j++)),
    c = f << 2 | g >> 4,
    d = (15 & g) << 4 | h >> 2,
    e = (3 & h) << 6 | i,
    b += String.fromCharCode(c),
    64 != h && (b += String.fromCharCode(d)),
    64 != i && (b += String.fromCharCode(e));
    return b = _utf8_decode(b)
},
_utf8_encode = function(a) {
    var b, c, d;
    for (a = a.replace(/\r\n/g, "\n"), b = "", c = 0; c < a.length; c++) d = a.charCodeAt(c),
    128 > d ? b += String.fromCharCode(d) : d > 127 && 2048 > d ? (b += String.fromCharCode(192 | d >> 6), b += String.fromCharCode(128 | 63 & d)) : (b += String.fromCharCode(224 | d >> 12), b += String.fromCharCode(128 | 63 & d >> 6), b += String.fromCharCode(128 | 63 & d));
    return b
},
_utf8_decode = function(a) {
    for (var b = "",
    c = 0,
    d = c1 = c2 = 0; c < a.length;) d = a.charCodeAt(c),
    128 > d ? (b += String.fromCharCode(d), c++) : d > 191 && 224 > d ? (c2 = a.charCodeAt(c + 1), b += String.fromCharCode((31 & d) << 6 | 63 & c2), c += 2) : (c2 = a.charCodeAt(c + 1), c3 = a.charCodeAt(c + 2), b += String.fromCharCode((15 & d) << 12 | (63 & c2) << 6 | 63 & c3), c += 3);
    return b
}
}
function hex_md5(a) {
return binl2hex(core_md5(str2binl(a), a.length * chrsz))
}
function b64_md5(a) {
return binl2b64(core_md5(str2binl(a), a.length * chrsz))
}
function str_md5(a) {
return binl2str(core_md5(str2binl(a), a.length * chrsz))
}
function hex_hmac_md5(a, b) {
return binl2hex(core_hmac_md5(a, b))
}
function b64_hmac_md5(a, b) {
return binl2b64(core_hmac_md5(a, b))
}
function str_hmac_md5(a, b) {
return binl2str(core_hmac_md5(a, b))
}
function md5_vm_test() {
return "900150983cd24fb0d6963f7d28e17f72" == hex_md5("abc")
}
function core_md5(a, b) {
var c, d, e, f, g, h, i, j, k;
for (a[b >> 5] |= 128 << b % 32, a[(b + 64 >>> 9 << 4) + 14] = b, c = 1732584193, d = -271733879, e = -1732584194, f = 271733878, g = 0; g < a.length; g += 16) h = c,
i = d,
j = e,
k = f,
c = md5_ff(c, d, e, f, a[g + 0], 7, -680876936),
f = md5_ff(f, c, d, e, a[g + 1], 12, -389564586),
e = md5_ff(e, f, c, d, a[g + 2], 17, 606105819),
d = md5_ff(d, e, f, c, a[g + 3], 22, -1044525330),
c = md5_ff(c, d, e, f, a[g + 4], 7, -176418897),
f = md5_ff(f, c, d, e, a[g + 5], 12, 1200080426),
e = md5_ff(e, f, c, d, a[g + 6], 17, -1473231341),
d = md5_ff(d, e, f, c, a[g + 7], 22, -45705983),
c = md5_ff(c, d, e, f, a[g + 8], 7, 1770035416),
f = md5_ff(f, c, d, e, a[g + 9], 12, -1958414417),
e = md5_ff(e, f, c, d, a[g + 10], 17, -42063),
d = md5_ff(d, e, f, c, a[g + 11], 22, -1990404162),
c = md5_ff(c, d, e, f, a[g + 12], 7, 1804603682),
f = md5_ff(f, c, d, e, a[g + 13], 12, -40341101),
e = md5_ff(e, f, c, d, a[g + 14], 17, -1502002290),
d = md5_ff(d, e, f, c, a[g + 15], 22, 1236535329),
c = md5_gg(c, d, e, f, a[g + 1], 5, -165796510),
f = md5_gg(f, c, d, e, a[g + 6], 9, -1069501632),
e = md5_gg(e, f, c, d, a[g + 11], 14, 643717713),
d = md5_gg(d, e, f, c, a[g + 0], 20, -373897302),
c = md5_gg(c, d, e, f, a[g + 5], 5, -701558691),
f = md5_gg(f, c, d, e, a[g + 10], 9, 38016083),
e = md5_gg(e, f, c, d, a[g + 15], 14, -660478335),
d = md5_gg(d, e, f, c, a[g + 4], 20, -405537848),
c = md5_gg(c, d, e, f, a[g + 9], 5, 568446438),
f = md5_gg(f, c, d, e, a[g + 14], 9, -1019803690),
e = md5_gg(e, f, c, d, a[g + 3], 14, -187363961),
d = md5_gg(d, e, f, c, a[g + 8], 20, 1163531501),
c = md5_gg(c, d, e, f, a[g + 13], 5, -1444681467),
f = md5_gg(f, c, d, e, a[g + 2], 9, -51403784),
e = md5_gg(e, f, c, d, a[g + 7], 14, 1735328473),
d = md5_gg(d, e, f, c, a[g + 12], 20, -1926607734),
c = md5_hh(c, d, e, f, a[g + 5], 4, -378558),
f = md5_hh(f, c, d, e, a[g + 8], 11, -2022574463),
e = md5_hh(e, f, c, d, a[g + 11], 16, 1839030562),
d = md5_hh(d, e, f, c, a[g + 14], 23, -35309556),
c = md5_hh(c, d, e, f, a[g + 1], 4, -1530992060),
f = md5_hh(f, c, d, e, a[g + 4], 11, 1272893353),
e = md5_hh(e, f, c, d, a[g + 7], 16, -155497632),
d = md5_hh(d, e, f, c, a[g + 10], 23, -1094730640),
c = md5_hh(c, d, e, f, a[g + 13], 4, 681279174),
f = md5_hh(f, c, d, e, a[g + 0], 11, -358537222),
e = md5_hh(e, f, c, d, a[g + 3], 16, -722521979),
d = md5_hh(d, e, f, c, a[g + 6], 23, 76029189),
c = md5_hh(c, d, e, f, a[g + 9], 4, -640364487),
f = md5_hh(f, c, d, e, a[g + 12], 11, -421815835),
e = md5_hh(e, f, c, d, a[g + 15], 16, 530742520),
d = md5_hh(d, e, f, c, a[g + 2], 23, -995338651),
c = md5_ii(c, d, e, f, a[g + 0], 6, -198630844),
f = md5_ii(f, c, d, e, a[g + 7], 10, 1126891415),
e = md5_ii(e, f, c, d, a[g + 14], 15, -1416354905),
d = md5_ii(d, e, f, c, a[g + 5], 21, -57434055),
c = md5_ii(c, d, e, f, a[g + 12], 6, 1700485571),
f = md5_ii(f, c, d, e, a[g + 3], 10, -1894986606),
e = md5_ii(e, f, c, d, a[g + 10], 15, -1051523),
d = md5_ii(d, e, f, c, a[g + 1], 21, -2054922799),
c = md5_ii(c, d, e, f, a[g + 8], 6, 1873313359),
f = md5_ii(f, c, d, e, a[g + 15], 10, -30611744),
e = md5_ii(e, f, c, d, a[g + 6], 15, -1560198380),
d = md5_ii(d, e, f, c, a[g + 13], 21, 1309151649),
c = md5_ii(c, d, e, f, a[g + 4], 6, -145523070),
f = md5_ii(f, c, d, e, a[g + 11], 10, -1120210379),
e = md5_ii(e, f, c, d, a[g + 2], 15, 718787259),
d = md5_ii(d, e, f, c, a[g + 9], 21, -343485551),
c = safe_add(c, h),
d = safe_add(d, i),
e = safe_add(e, j),
f = safe_add(f, k);
return Array(c, d, e, f)
}
function md5_cmn(a, b, c, d, e, f) {
return safe_add(bit_rol(safe_add(safe_add(b, a), safe_add(d, f)), e), c)
}
function md5_ff(a, b, c, d, e, f, g) {
return md5_cmn(b & c | ~b & d, a, b, e, f, g)
}
function md5_gg(a, b, c, d, e, f, g) {
return md5_cmn(b & d | c & ~d, a, b, e, f, g)
}
function md5_hh(a, b, c, d, e, f, g) {
return md5_cmn(b ^ c ^ d, a, b, e, f, g)
}
function md5_ii(a, b, c, d, e, f, g) {
return md5_cmn(c ^ (b | ~d), a, b, e, f, g)
}
function core_hmac_md5(a, b) {
var d, e, f, g, c = str2binl(a);
for (c.length > 16 && (c = core_md5(c, a.length * chrsz)), d = Array(16), e = Array(16), f = 0; 16 > f; f++) d[f] = 909522486 ^ c[f],
e[f] = 1549556828 ^ c[f];
return g = core_md5(d.concat(str2binl(b)), 512 + b.length * chrsz),
core_md5(e.concat(g), 640)
}
function safe_add(a, b) {
var c = (65535 & a) + (65535 & b),
d = (a >> 16) + (b >> 16) + (c >> 16);
return d << 16 | 65535 & c
}
function bit_rol(a, b) {
return a << b | a >>> 32 - b
}
function str2binl(a) {
var d, b = Array(),
c = (1 << chrsz) - 1;
for (d = 0; d < a.length * chrsz; d += chrsz) b[d >> 5] |= (a.charCodeAt(d / chrsz) & c) << d % 32;
return b
}
function binl2str(a) {
var d, b = "",
c = (1 << chrsz) - 1;
for (d = 0; d < 32 * a.length; d += chrsz) b += String.fromCharCode(a[d >> 5] >>> d % 32 & c);
return b
}
function binl2hex(a) {
var d, b = hexcase ? "0123456789ABCDEF": "0123456789abcdef",
c = "";
for (d = 0; d < 4 * a.length; d++) c += b.charAt(15 & a[d >> 2] >> 8 * (d % 4) + 4) + b.charAt(15 & a[d >> 2] >> 8 * (d % 4));
return c
}
function binl2b64(a) {
var d, e, f, b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
c = "";
for (d = 0; d < 4 * a.length; d += 3) for (e = (255 & a[d >> 2] >> 8 * (d % 4)) << 16 | (255 & a[d + 1 >> 2] >> 8 * ((d + 1) % 4)) << 8 | 255 & a[d + 2 >> 2] >> 8 * ((d + 2) % 4), f = 0; 4 > f; f++) c += 8 * d + 6 * f > 32 * a.length ? b64pad: b.charAt(63 & e >> 6 * (3 - f));
return c
}
function encode_param(a) {
var b = new Base64;
return b.encode(a)
}
function encode_secret() {
var b, a = appId;
for (b = 0; b < arguments.length; b++) a += arguments[b];
return a = a.replace(/\s/g, ""),
hex_md5(a)
}
function decode_result(a) {
var b = new Base64;
return b.decode(b.decode(b.decode(a)))
}
var hexcase = 0,
b64pad = "",
chrsz = 8,
appId = "b73a4aaa989f54997ef7b9c42b6b4b29";
var hexcase = 0;
var b64pad = "";
function hex_md5(s) {
return rstr2hex(rstr_md5(str2rstr_utf8(s)))
}
function b64_md5(s) {
return rstr2b64(rstr_md5(str2rstr_utf8(s)))
}
function any_md5(s, e) {
return rstr2any(rstr_md5(str2rstr_utf8(s)), e)
}
function hex_hmac_md5(k, d) {
return rstr2hex(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)))
}
function b64_hmac_md5(k, d) {
return rstr2b64(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)))
}
function any_hmac_md5(k, d, e) {
return rstr2any(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)), e)
}
function md5_vm_test() {
return hex_md5("abc").toLowerCase() == "900150983cd24fb0d6963f7d28e17f72"
}
function rstr_md5(s) {
return binl2rstr(binl_md5(rstr2binl(s), s.length * 8))
}
function rstr_hmac_md5(key, data) {
var bkey = rstr2binl(key);
if (bkey.length > 16) bkey = binl_md5(bkey, key.length * 8);
var ipad = Array(16),
opad = Array(16);
for (var i = 0; i < 16; i++) {
    ipad[i] = bkey[i] ^ 0x36363636;
    opad[i] = bkey[i] ^ 0x5C5C5C5C
}
var hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
return binl2rstr(binl_md5(opad.concat(hash), 512 + 128))
}
function rstr2hex(input) {
try {
    hexcase
} catch(e) {
    hexcase = 0
}
var hex_tab = hexcase ? "0123456789ABCDEF": "0123456789abcdef";
var output = "";
var x;
for (var i = 0; i < input.length; i++) {
    x = input.charCodeAt(i);
    output += hex_tab.charAt((x >>> 4) & 0x0F) + hex_tab.charAt(x & 0x0F)
}
return output
}
function rstr2b64(input) {
try {
    b64pad
} catch(e) {
    b64pad = ''
}
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var output = "";
var len = input.length;
for (var i = 0; i < len; i += 3) {
    var triplet = (input.charCodeAt(i) << 16) | (i + 1 < len ? input.charCodeAt(i + 1) << 8 : 0) | (i + 2 < len ? input.charCodeAt(i + 2) : 0);
    for (var j = 0; j < 4; j++) {
        if (i * 8 + j * 6 > input.length * 8) output += b64pad;
        else output += tab.charAt((triplet >>> 6 * (3 - j)) & 0x3F)
    }
}
return output
}
function rstr2any(input, encoding) {
var divisor = encoding.length;
var i, j, q, x, quotient;
var dividend = Array(Math.ceil(input.length / 2));
for (i = 0; i < dividend.length; i++) {
    dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1)
}
var full_length = Math.ceil(input.length * 8 / (Math.log(encoding.length) / Math.log(2)));
var remainders = Array(full_length);
for (j = 0; j < full_length; j++) {
    quotient = Array();
    x = 0;
    for (i = 0; i < dividend.length; i++) {
        x = (x << 16) + dividend[i];
        q = Math.floor(x / divisor);
        x -= q * divisor;
        if (quotient.length > 0 || q > 0) quotient[quotient.length] = q
    }
    remainders[j] = x;
    dividend = quotient
}
var output = "";
for (i = remainders.length - 1; i >= 0; i--) output += encoding.charAt(remainders[i]);
return output
}
function str2rstr_utf8(input) {
var output = "";
var i = -1;
var x, y;
while (++i < input.length) {
    x = input.charCodeAt(i);
    y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0;
    if (0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) {
        x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF);
        i++
    }
    if (x <= 0x7F) output += String.fromCharCode(x);
    else if (x <= 0x7FF) output += String.fromCharCode(0xC0 | ((x >>> 6) & 0x1F), 0x80 | (x & 0x3F));
    else if (x <= 0xFFFF) output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F));
    else if (x <= 0x1FFFFF) output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), 0x80 | ((x >>> 12) & 0x3F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F))
}
return output
}
function str2rstr_utf16le(input) {
var output = "";
for (var i = 0; i < input.length; i++) output += String.fromCharCode(input.charCodeAt(i) & 0xFF, (input.charCodeAt(i) >>> 8) & 0xFF);
return output
}
function str2rstr_utf16be(input) {
var output = "";
for (var i = 0; i < input.length; i++) output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, input.charCodeAt(i) & 0xFF);
return output
}
function rstr2binl(input) {
var output = Array(input.length >> 2);
for (var i = 0; i < output.length; i++) output[i] = 0;
for (var i = 0; i < input.length * 8; i += 8) output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32);
return output
}
function binl2rstr(input) {
var output = "";
for (var i = 0; i < input.length * 32; i += 8) output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);
return output
}
function binl_md5(x, len) {
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for (var i = 0; i < x.length; i += 16) {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;
    a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936);
    d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
    c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
    b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
    a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
    d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
    c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
    b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
    a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
    d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
    c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
    b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
    a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
    d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
    c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
    b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
    a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
    d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
    c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
    b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302);
    a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
    d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
    c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
    b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
    a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
    d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
    c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
    b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
    a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
    d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
    c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
    b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
    a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
    d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
    c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
    b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
    a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
    d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
    c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
    b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
    a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
    d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222);
    c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
    b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
    a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
    d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
    c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
    b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
    a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844);
    d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
    c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
    b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
    a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
    d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
    c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
    b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
    a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
    d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
    c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
    b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
    a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
    d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
    c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
    b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
    a = safe_add(a, olda);
    b = safe_add(b, oldb);
    c = safe_add(c, oldc);
    d = safe_add(d, oldd)
}
return Array(a, b, c, d)
}
function pNg63WJXHfm8r(method, obj) {
    var appId = 'baec98a73c1bff796603cb2fa9d6d449';
    var clienttype = 'WEB';
    var timestamp = new Date().getTime();
    var param = {
        appId: appId,
        method: method,
        timestamp: timestamp,
        clienttype: clienttype,
        object: obj,
        secret: hex_md5(appId + method + timestamp + clienttype + JSON.stringify(ObjectSort(obj)))
    };
    param = BASE64.encrypt(JSON.stringify(param));
    return param
}
function ObjectSort(obj) {
var newObject = {};
Object.keys(obj).sort().map(function(key) {
    newObject[key] = obj[key]
});
return newObject
}
var BASE64 = {
encrypt: function(text) {
    var b = new Base64();
    return b.encode(text)
},
decrypt: function(text) {
    var b = new Base64();
    return b.decode(text)
}
};

method = 'GETDATA';
obj={
    city:"广州",
    endTime:"2021-03-31 9:00:00",
    startTime:"2021-03-30 9:00:00",
    type:"HOUR",
};
function dX506x9jVK3vuMMhoz6ZXx(data) {
    data = AES.decrypt(data, askCju6cmMLz, asieXomd2dAl);
    data = DES.decrypt(data, dskq6mV934LL, dsi68kk2Mig9);
    data = BASE64.decrypt(data);
    return data
}
console.log(pNg63WJXHfm8r(method,obj));
data='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\n';
var AES = {
encrypt: function(text, key, iv) {
    var secretkey = (CryptoJS.MD5(key).toString()).substr(16, 16);
    var secretiv = (CryptoJS.MD5(iv).toString()).substr(0, 16);
    secretkey = CryptoJS.enc.Utf8.parse(secretkey);
    secretiv = CryptoJS.enc.Utf8.parse(secretiv);
    var result = CryptoJS.AES.encrypt(text, secretkey, {
        iv: secretiv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    return result.toString()
},
decrypt: function(text, key, iv) {
    var secretkey = (CryptoJS.MD5(key).toString()).substr(16, 16);
    var secretiv = (CryptoJS.MD5(iv).toString()).substr(0, 16);
    secretkey = CryptoJS.enc.Utf8.parse(secretkey);
    secretiv = CryptoJS.enc.Utf8.parse(secretiv);
    var result = CryptoJS.AES.decrypt(text, secretkey, {
        iv: secretiv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    return result.toString(CryptoJS.enc.Utf8)
}
};
var askCju6cmMLz = "apAteRdhDd5i5n74";
var asieXomd2dAl = "bN8izWwuwRjjA0pH";
var CryptoJS=require('./crypto-js-4.0.0/crypto-js');
var DES = {
    encrypt: function (text, key, iv) {
        var secretkey = (CryptoJS.MD5(key).toString()).substr(0, 16);
        var secretiv = (CryptoJS.MD5(iv).toString()).substr(24, 8);
        secretkey = CryptoJS.enc.Utf8.parse(secretkey);
        secretiv = CryptoJS.enc.Utf8.parse(secretiv);
        var result = CryptoJS.DES.encrypt(text, secretkey, {
            iv: secretiv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return result.toString()
    },
    decrypt: function (text, key, iv) {
        var secretkey = (CryptoJS.MD5(key).toString()).substr(0, 16);
        var secretiv = (CryptoJS.MD5(iv).toString()).substr(24, 8);
        secretkey = CryptoJS.enc.Utf8.parse(secretkey);
        secretiv = CryptoJS.enc.Utf8.parse(secretiv);
        var result = CryptoJS.DES.decrypt(text, secretkey, {
            iv: secretiv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return result.toString(CryptoJS.enc.Utf8)
    }
};
const dskq6mV934LL = "hY8XWvmotJ7yhyBV";
const dsi68kk2Mig9 = "xCYtuanHBbJFWlKg";
console.log(dX506x9jVK3vuMMhoz6ZXx(data));

仅供学习交流
不懂得欢迎留言讨论

你可能感兴趣的:(js,逆向,python,爬虫,javascript,后端,chrome)