SOURCE

function s(e) {
    var t = {};
    if (Array.isArray(e))
        return t;
    for (var n in e)
        t[n] = "object" != typeof e[n] || Array.isArray(e[n]) || null === e[n] ? e[n] : s(e[n]);
    return t
}

function c(e) {
    var t = [];
    for (var n in e)
        if (null == e[n] || void 0 == e[n] || "" === e[n])
            ;
        else if ("object" == typeof e[n]) {
            var i = c(e[n]);
            for (var r in i)
                t.push(i[r])
        } else
            t.push(n + "=" + e[n]);
    return t
}

function u() {
    var e = ["a", "B", "6", "D", "1", "g", "s", "K", "m", "t", "5"]
        , t = Math.floor(11 * Math.random())
        , n = Math.floor(5 * Math.random() + 1)
        , i = (new Date).getTime() + ""
        , o = i.substr(0, n) + e[t] + i.substr(n);
    return o
}

function l(e) {
    var t = {
        "X-APP-PLATFORM": 6,
        zuul_web_key: "zuul_web_key",
        "X-APP-NONCE": u(),
        "X-APP-UUIDS": u(),
        "X-APP-TIMES": u()
    }
        , n = s(e);
    n["xappplatform"] = t["X-APP-PLATFORM"],
        n["xappkey"] = t["X-APP-KEY"],
        n["xappnonce"] = t["X-APP-NONCE"],
        n["xappuuids"] = t["X-APP-UUIDS"],
        n["xapptimes"] = t["X-APP-TIMES"];
        console.log(n)
    var i = parseInt(1e3 * Math.random()) % 3
        , o = ["xappnonce", "xappuuids", "xapptimes"]
        , r = o[i]
        , l = c(n);
    l.sort();
    console.log(l)
    console.log(r)
    var d = l.join("&");
    console.log(r)
    d = md5(d + n[r]);
    var h = d.substr(0, 2) + r + d.substr(2);
    return t["X-APP-SIGN"] = h,
        t
}

console.log(l({ a: 1, b: 2 }))
console 命令行工具 X clear

                    
>
console