全国空气质量在线平台-js逆向

1.全国空气质量在线平台

网址:https://www.aqistudy.cn/

2.逆向js代码


const  askCju6cmMLz = "apAteRdhDd5i5n74";//AESkey,可自定义
const  asieXomd2dAl = "bN8izWwuwRjjA0pH";//密钥偏移量IV,可自定义

const  ackWpSYGqWDU = "dOzNkylRKkmvJ8WP";//AESkey,可自定义
const  aciPXJAqV8bc = "fS6yu6Kz72UWOqLm";//密钥偏移量IV,可自定义

const  dskq6mV934LL = "hY8XWvmotJ7yhyBV";//DESkey,可自定义
const  dsi68kk2Mig9 = "xCYtuanHBbJFWlKg";//密钥偏移量IV,可自定义

const  dckmQMBceyd6 = "ougX3aSyswLitv49";//DESkey,可自定义
const  dciNka5Pmv4x = "pebJx2rKU7WTkBP6";//密钥偏移量IV,可自定义

const aes_local_key = ‘emhlbnFpcGFsbWtleQ==‘;
const aes_local_iv = ‘emhlbnFpcGFsbWl2‘;

var CryptoJS = require(‘./crypto-js‘);

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 md5_cmn(q, a, b, x, s, t) {
    return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
}
function md5_ff(a, b, c, d, x, s, t) {
    return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
}
function md5_gg(a, b, c, d, x, s, t) {
    return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
}
function md5_hh(a, b, c, d, x, s, t) {
    return md5_cmn(b ^ c ^ d, a, b, x, s, t)
}
function md5_ii(a, b, c, d, x, s, t) {
    return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
}
function safe_add(x, y) {
    var lsw = (x & 0xFFFF) + (y & 0xFFFF);
    var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
    return (msw << 16) | (lsw & 0xFFFF)
}
function bit_rol(num, cnt) {
    return (num << cnt) | (num >>> (32 - cnt))
}

function ObjectSort(obj) {
    var newObject = {};
    Object.keys(obj).sort().map(function(key){
      newObject[key] = obj[key];
    });
    return newObject;
}

function base64(param){

  var res = new Buffer(param).toString(‘base64‘);

  return res

}

function jiami(method, obj){
    var appId = ‘baec98a73c1bff796603cb2fa9d6d449‘;
    var clienttype = ‘WEB‘;
    var timestamp = new Date().getTime();
    // console.log(method, obj,ObjectSort(obj),appId + method + timestamp + ‘WEIXIN‘ + JSON.stringify(ObjectSort(obj)));
    var param = {
      appId: appId,
      method: method,
      timestamp: timestamp,
      clienttype: clienttype,
      object: obj,
      secret: hex_md5(appId + method + timestamp + clienttype + JSON.stringify(ObjectSort(obj)))
    };
    // console.log(param.secret)
    param = base64(JSON.stringify(param));
    // console.log(param)
    return param;
}

obj = {city: "东莞", type: "HOUR", startTime: "2021-03-21 09:00:00", endTime: "2021-03-22 12:00:00"}

// 请求参数加密
req_param = jiami("GETDETAIL", obj)

console.log(req_param)


// -----------------------------------------解密------------------------------------------------------
// 返回的密文数据
data = ‘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‘

function AESdecrypt(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);
  }

function DESdecrypt(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);
  }

function BASE64decrypt(text){
  var b = new Buffer(text, ‘base64‘)
  var s = b.toString();
  return s
}
// 数据解密函数
function jiemi(data) {
    data = AESdecrypt(data, askCju6cmMLz, asieXomd2dAl);
    data = DESdecrypt(data, dskq6mV934LL, dsi68kk2Mig9);
    data = BASE64decrypt(data);
    return data;
}

console.log(jiemi(data))

全国空气质量在线平台-js逆向

上一篇:ThinkPHP 对接支付宝支付接口


下一篇:Web前端学习—基础篇(19)_页面布局中浮动是什么?浮动有哪些特性,它会引发什么问题?怎么清除浮动?