开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2897|回复: 5
收起左侧

[已解决] 知乎登录的signature算法的JS改写问题,求助!

 关闭 [复制链接]
结帖率:57% (8/14)
发表于 2018-4-19 19:29:03 | 显示全部楼层 |阅读模式   广东省珠海市
50精币
这是网页原本调用计算signature的地方 原.png


这是我在找齐参数后,在调试工具自己改的调用函数 改.png


-----------------------
现在就差一个a.a("SHA-1","TEXT")的调用了,算法的函数我也找到了,跟改的测试函数一起放在附件里, 算法.png

就是不知道怎么在测试函数里调用这个匿名函数的方法,求助!
谢谢


知乎signature.txt

33.18 KB, 下载次数: 17

最佳答案

查看完整内容

function a(e, t, n) { var r, o, a, i, c, u, s, l, y, b = 0, g = [], E = 0, w = !1, O = [], _ = [], T = !1, C = !1; if (n = n || {}, r = n.encoding || "UTF8", y = n.numRounds || 1, a = v(t, r), y !== parseInt(y, 10) || 1 > y) throw Error("numRounds must a integer >= 1"); if ("SHA-1" === e) ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (3/3)

签到天数: 28 天

发表于 2018-4-19 19:29:04 | 显示全部楼层   江苏省苏州市

        function a(e, t, n) {
            var r, o, a, i, c, u, s, l, y, b = 0, g = [], E = 0, w = !1, O = [], _ = [], T = !1, C = !1;
            if (n = n || {},
            r = n.encoding || "UTF8",
            y = n.numRounds || 1,
            a = v(t, r),
            y !== parseInt(y, 10) || 1 > y)
                throw Error("numRounds must a integer >= 1");
            if ("SHA-1" === e)
                c = 512,
                u = G,
                s = H,
                i = 160,
                l = function(e) {
                    return e.slice()
                };
        
            o = B(e),
            this.setHMACKey = function(t, n, a) {
                var l;
                if (!0 === w)
                    throw Error("HMAC key already set");
                if (!0 === T)
                    throw Error("Cannot set HMAC key after calling update");
                if (!0 === C)
                    throw Error("SHAKE is not supported for HMAC");
                if (r = (a || {}).encoding || "UTF8",
                n = v(n, r)(t),
                t = n.binLen,
                n = n.value,
                l = c >>> 3,
                a = l / 4 - 1,
                l < t / 8) {
                    for (n = s(n, t, 0, B(e), i); n.length <= a; )
                        n.push(0);
                    n[a] &= 4294967040
                } else if (l > t / 8) {
                    for (; n.length <= a; )
                        n.push(0);
                    n[a] &= 4294967040
                }
                for (t = 0; t <= a; t += 1)
                    O[t] = 909522486 ^ n[t],
                    _[t] = 1549556828 ^ n[t];
                o = u(O, o),
                b = c,
                w = !0
            }
            ,
            this.update = function(e) {
                var t, n, r, i = 0, s = c >>> 5;
                for (t = a(e, g, E),
                e = t.binLen,
                n = t.value,
                t = e >>> 5,
                r = 0; r < t; r += s)
                    i + c <= e && (o = u(n.slice(r, r + s), o),
                    i += c);
                b += i,
                g = n.slice(i >>> 5),
                E = e % c,
                T = !0
            }
            ,
            this.getHash = function(t, n) {
                var r, a, c, u;
                if (!0 === w)
                    throw Error("Cannot call getHash after setting HMAC key");
                if (c = m(n),
                !0 === C) {
                    if (-1 === c.shakeLen)
                        throw Error("shakeLen must be specified in options");
                    i = c.shakeLen
                }
                switch (t) {
                case "HEX":
                    r = function(e) {
                        return f(e, i, c)
                    }
                    ;
                    break;
                case "B64":
                    r = function(e) {
                        return p(e, i, c)
                    }
                    ;
                    break;
                case "BYTES":
                    r = function(e) {
                        return d(e, i)
                    }
                    ;
                    break;
                case "ARRAYBUFFER":
                    try {
                        a = new ArrayBuffer(0)
                    } catch (e) {
                        throw Error("ARRAYBUFFER not supported by this environment")
                    }
                    r = function(e) {
                        return h(e, i)
                    }
                    ;
                    break;
                default:
                    throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER")
                }
                for (u = s(g.slice(), E, b, l(o), i),
                a = 1; a < y; a += 1)
                    !0 === C && 0 != i % 32 && (u[u.length - 1] &= 4294967040 << 24 - i % 32),
                    u = s(u, i, 0, B(e), i);
                return r(u)
            }
            ,
            this.getHMAC = function(t, n) {
                var r, a, v, y;
                if (!1 === w)
                    throw Error("Cannot call getHMAC without first setting HMAC key");
                switch (v = m(n),
                t) {
                case "HEX":
                    r = function(e) {
                        return f(e, i, v)
                    }
                    ;
                    break;
                case "B64":
                    r = function(e) {
                        return p(e, i, v)
                    }
                    ;
                    break;
                case "BYTES":
                    r = function(e) {
                        return d(e, i)
                    }
                    ;
                    break;
                case "ARRAYBUFFER":
                    try {
                        r = new ArrayBuffer(0)
                    } catch (e) {
                        throw Error("ARRAYBUFFER not supported by this environment")
                    }
                    r = function(e) {
                        return h(e, i)
                    }
                    ;
                    break;
                default:
                    throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER")
                }
                return a = s(g.slice(), E, b, l(o), i),
                y = u(_, B(e)),
                y = s(a, i, c, y, i),
                r(y)
            }
        }
        
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
                function i(e, t) {
            this.a = e,
            this.b = t
        }
        function c(e, t, n) {
            var r, o, a, i, c, u = e.length;
            if (t = t || [0],
            n = n || 0,
            c = n >>> 3,
            0 != u % 2)
                throw Error("String of HEX type must be in byte increments");
            for (r = 0; r < u; r += 2) {
                if (o = parseInt(e.substr(r, 2), 16),
                isNaN(o))
                    throw Error("String of HEX type contains invalid characters");
                for (i = (r >>> 1) + c,
                a = i >>> 2; t.length <= a; )
                    t.push(0);
                t[a] |= o << 8 * (3 - i % 4)
            }
            return {
                value: t,
                binLen: 4 * u + n
            }
        }
        function u(e, t, n) {
            var r, o, a, i, c = [], c = t || [0];
            for (n = n || 0,
            o = n >>> 3,
            r = 0; r < e.length; r += 1)
                t = e.charCodeAt(r),
                i = r + o,
                a = i >>> 2,
                c.length <= a && c.push(0),
                c[a] |= t << 8 * (3 - i % 4);
            return {
                value: c,
                binLen: 8 * e.length + n
            }
        }
        function s(e, t, n) {
            var r, o, a, i, c, u, s = [], l = 0, s = t || [0];
            if (n = n || 0,
            t = n >>> 3,
            -1 === e.search(/^[a-zA-Z0-9=+\/]+$/))
                throw Error("Invalid character in base-64 string");
            if (o = e.indexOf("="),
            e = e.replace(/\=/g, ""),
            -1 !== o && o < e.length)
                throw Error("Invalid '=' found in base-64 string");
            for (o = 0; o < e.length; o += 4) {
                for (c = e.substr(o, 4),
                a = i = 0; a < c.length; a += 1)
                    r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(c[a]),
                    i |= r << 18 - 6 * a;
                for (a = 0; a < c.length - 1; a += 1) {
                    for (u = l + t,
                    r = u >>> 2; s.length <= r; )
                        s.push(0);
                    s[r] |= (i >>> 16 - 8 * a & 255) << 8 * (3 - u % 4),
                    l += 1
                }
            }
            return {
                value: s,
                binLen: 8 * l + n
            }
        }
        function l(e, t, n) {
            var r, o, a, i = [], i = t || [0];
            for (n = n || 0,
            r = n >>> 3,
            t = 0; t < e.byteLength; t += 1)
                a = t + r,
                o = a >>> 2,
                i.length <= o && i.push(0),
                i[o] |= e[t] << 8 * (3 - a % 4);
            return {
                value: i,
                binLen: 8 * e.byteLength + n
            }
        }
        function f(e, t, n) {
            var r = "";
            t /= 8;
            var o, a;
            for (o = 0; o < t; o += 1)
                a = e[o >>> 2] >>> 8 * (3 - o % 4),
                r += "0123456789abcdef".charAt(a >>> 4 & 15) + "0123456789abcdef".charAt(15 & a);
            return n.outputUpper ? r.toUpperCase() : r
        }
        function p(e, t, n) {
            var r, o, a, i = "", c = t / 8;
            for (r = 0; r < c; r += 3)
                for (o = r + 1 < c ? e[r + 1 >>> 2] : 0,
                a = r + 2 < c ? e[r + 2 >>> 2] : 0,
                a = (e[r >>> 2] >>> 8 * (3 - r % 4) & 255) << 16 | (o >>> 8 * (3 - (r + 1) % 4) & 255) << 8 | a >>> 8 * (3 - (r + 2) % 4) & 255,
                o = 0; 4 > o; o += 1)
                    i += 8 * r + 6 * o <= t ? "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(a >>> 6 * (3 - o) & 63) : n.b64Pad;
            return i
        }
        function d(e, t) {
            var n, r, o = "", a = t / 8;
            for (n = 0; n < a; n += 1)
                r = e[n >>> 2] >>> 8 * (3 - n % 4) & 255,
                o += String.fromCharCode(r);
            return o
        }
        function h(e, t) {
            var n, r = t / 8, o = new ArrayBuffer(r);
            for (n = 0; n < r; n += 1)
                o[n] = e[n >>> 2] >>> 8 * (3 - n % 4) & 255;
            return o
        }
        function m(e) {
            var t = {
                outputUpper: !1,
                b64Pad: "=",
                shakeLen: -1
            };
            if (e = e || {},
            t.outputUpper = e.outputUpper || !1,
            !0 === e.hasOwnProperty("b64Pad") && (t.b64Pad = e.b64Pad),
            !0 === e.hasOwnProperty("shakeLen")) {
                if (0 != e.shakeLen % 8)
                    throw Error("shakeLen must be a multiple of 8");
                t.shakeLen = e.shakeLen
            }
            if ("boolean" != typeof t.outputUpper)
                throw Error("Invalid outputUpper formatting option");
            if ("string" != typeof t.b64Pad)
                throw Error("Invalid b64Pad formatting option");
            return t
        }
        function v(e, t) {
            var n;
            switch (t) {
            case "UTF8":
            case "UTF16BE":
            case "UTF16LE":
                break;
            default:
                throw Error("encoding must be UTF8, UTF16BE, or UTF16LE")
            }
            switch (e) {
            case "HEX":
                n = c;
                break;
            case "TEXT":
                n = function(e, n, r) {
                    var o, a, i, c, u, s = [], l = [], f = 0, s = n || [0];
                    if (n = r || 0,
                    i = n >>> 3,
                    "UTF8" === t)
                        for (o = 0; o < e.length; o += 1)
                            for (r = e.charCodeAt(o),
                            l = [],
                            128 > r ? l.push(r) : 2048 > r ? (l.push(192 | r >>> 6),
                            l.push(128 | 63 & r)) : 55296 > r || 57344 <= r ? l.push(224 | r >>> 12, 128 | r >>> 6 & 63, 128 | 63 & r) : (o += 1,
                            r = 65536 + ((1023 & r) << 10 | 1023 & e.charCodeAt(o)),
                            l.push(240 | r >>> 18, 128 | r >>> 12 & 63, 128 | r >>> 6 & 63, 128 | 63 & r)),
                            a = 0; a < l.length; a += 1) {
                                for (u = f + i,
                                c = u >>> 2; s.length <= c; )
                                    s.push(0);
                                s[c] |= l[a] << 8 * (3 - u % 4),
                                f += 1
                            }
                    else if ("UTF16BE" === t || "UTF16LE" === t)
                        for (o = 0; o < e.length; o += 1) {
                            for (r = e.charCodeAt(o),
                            "UTF16LE" === t && (a = 255 & r,
                            r = a << 8 | r >>> 8),
                            u = f + i,
                            c = u >>> 2; s.length <= c; )
                                s.push(0);
                            s[c] |= r << 8 * (2 - u % 4),
                            f += 2
                        }
                    return {
                        value: s,
                        binLen: 8 * f + n
                    }
                }
                ;
                break;
            case "B64":
                n = s;
                break;
            case "BYTES":
                n = u;
                break;
            case "ARRAYBUFFER":
                try {
                    n = new ArrayBuffer(0)
                } catch (e) {
                    throw Error("ARRAYBUFFER not supported by this environment")
                }
                n = l;
                break;
            default:
                throw Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER")
            }
            return n
        }
        function y(e, t) {
            return e << t | e >>> 32 - t
        }
        function b(e, t) {
            return 32 < t ? (t -= 32,
            new i(e.b << t | e.a >>> 32 - t,e.a << t | e.b >>> 32 - t)) : 0 !== t ? new i(e.a << t | e.b >>> 32 - t,e.b << t | e.a >>> 32 - t) : e
        }
        function g(e, t) {
            return e >>> t | e << 32 - t
        }
        function E(e, t) {
            var n = null
              , n = new i(e.a,e.b);
            return n = 32 >= t ? new i(n.a >>> t | n.b << 32 - t & 4294967295,n.b >>> t | n.a << 32 - t & 4294967295) : new i(n.b >>> t - 32 | n.a << 64 - t & 4294967295,n.a >>> t - 32 | n.b << 64 - t & 4294967295)
        }
        function w(e, t) {
            return 32 >= t ? new i(e.a >>> t,e.b >>> t | e.a << 32 - t & 4294967295) : new i(0,e.a >>> t - 32)
        }
        function O(e, t, n) {
            return e & t ^ ~e & n
        }
        function _(e, t, n) {
            return new i(e.a & t.a ^ ~e.a & n.a,e.b & t.b ^ ~e.b & n.b)
        }
        function T(e, t, n) {
            return e & t ^ e & n ^ t & n
        }
        function C(e, t, n) {
            return new i(e.a & t.a ^ e.a & n.a ^ t.a & n.a,e.b & t.b ^ e.b & n.b ^ t.b & n.b)
        }
        function A(e) {
            return g(e, 2) ^ g(e, 13) ^ g(e, 22)
        }
        function S(e) {
            var t = E(e, 28)
              , n = E(e, 34);
            return e = E(e, 39),
            new i(t.a ^ n.a ^ e.a,t.b ^ n.b ^ e.b)
        }
        function P(e) {
            return g(e, 6) ^ g(e, 11) ^ g(e, 25)
        }
        function k(e) {
            var t = E(e, 14)
              , n = E(e, 18);
            return e = E(e, 41),
            new i(t.a ^ n.a ^ e.a,t.b ^ n.b ^ e.b)
        }
        function j(e) {
            return g(e, 7) ^ g(e, 18) ^ e >>> 3
        }
        function I(e) {
            var t = E(e, 1)
              , n = E(e, 8);
            return e = w(e, 7),
            new i(t.a ^ n.a ^ e.a,t.b ^ n.b ^ e.b)
        }
        function N(e) {
            return g(e, 17) ^ g(e, 19) ^ e >>> 10
        }
        function R(e) {
            var t = E(e, 19)
              , n = E(e, 61);
            return e = w(e, 6),
            new i(t.a ^ n.a ^ e.a,t.b ^ n.b ^ e.b)
        }
        function x(e, t) {
            var n = (65535 & e) + (65535 & t);
            return ((e >>> 16) + (t >>> 16) + (n >>> 16) & 65535) << 16 | 65535 & n
        }
        function M(e, t, n, r) {
            var o = (65535 & e) + (65535 & t) + (65535 & n) + (65535 & r);
            return ((e >>> 16) + (t >>> 16) + (n >>> 16) + (r >>> 16) + (o >>> 16) & 65535) << 16 | 65535 & o
        }
        function L(e, t, n, r, o) {
            var a = (65535 & e) + (65535 & t) + (65535 & n) + (65535 & r) + (65535 & o);
            return ((e >>> 16) + (t >>> 16) + (n >>> 16) + (r >>> 16) + (o >>> 16) + (a >>> 16) & 65535) << 16 | 65535 & a
        }
        function D(e, t) {
            var n, r, o;
            return n = (65535 & e.b) + (65535 & t.b),
            r = (e.b >>> 16) + (t.b >>> 16) + (n >>> 16),
            o = (65535 & r) << 16 | 65535 & n,
            n = (65535 & e.a) + (65535 & t.a) + (r >>> 16),
            r = (e.a >>> 16) + (t.a >>> 16) + (n >>> 16),
            new i((65535 & r) << 16 | 65535 & n,o)
        }
        function z(e, t, n, r) {
            var o, a, c;
            return o = (65535 & e.b) + (65535 & t.b) + (65535 & n.b) + (65535 & r.b),
            a = (e.b >>> 16) + (t.b >>> 16) + (n.b >>> 16) + (r.b >>> 16) + (o >>> 16),
            c = (65535 & a) << 16 | 65535 & o,
            o = (65535 & e.a) + (65535 & t.a) + (65535 & n.a) + (65535 & r.a) + (a >>> 16),
            a = (e.a >>> 16) + (t.a >>> 16) + (n.a >>> 16) + (r.a >>> 16) + (o >>> 16),
            new i((65535 & a) << 16 | 65535 & o,c)
        }
        function U(e, t, n, r, o) {
            var a, c, u;
            return a = (65535 & e.b) + (65535 & t.b) + (65535 & n.b) + (65535 & r.b) + (65535 & o.b),
            c = (e.b >>> 16) + (t.b >>> 16) + (n.b >>> 16) + (r.b >>> 16) + (o.b >>> 16) + (a >>> 16),
            u = (65535 & c) << 16 | 65535 & a,
            a = (65535 & e.a) + (65535 & t.a) + (65535 & n.a) + (65535 & r.a) + (65535 & o.a) + (c >>> 16),
            c = (e.a >>> 16) + (t.a >>> 16) + (n.a >>> 16) + (r.a >>> 16) + (o.a >>> 16) + (a >>> 16),
            new i((65535 & c) << 16 | 65535 & a,u)
        }
        function F(e) {
            var t, n = 0, r = 0;
            for (t = 0; t < arguments.length; t += 1)
                n ^= arguments[t].b,
                r ^= arguments[t].a;
            return new i(r,n)
        }
        function B(e) {
            var t, n = [];
            if ("SHA-1" === e)
                n = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
            
            return n
        }
        function G(e, t) {
            var n, r, o, a, i, c, u, s = [];
            for (n = t[0],
            r = t[1],
            o = t[2],
            a = t[3],
            i = t[4],
            u = 0; 80 > u; u += 1)
                s[u] = 16 > u ? e[u] : y(s[u - 3] ^ s[u - 8] ^ s[u - 14] ^ s[u - 16], 1),
                c = 20 > u ? L(y(n, 5), r & o ^ ~r & a, i, 1518500249, s[u]) : 40 > u ? L(y(n, 5), r ^ o ^ a, i, 1859775393, s[u]) : 60 > u ? L(y(n, 5), T(r, o, a), i, 2400959708, s[u]) : L(y(n, 5), r ^ o ^ a, i, 3395469782, s[u]),
                i = a,
                a = o,
                o = y(r, 30),
                r = n,
                n = c;
            return t[0] = x(n, t[0]),
            t[1] = x(r, t[1]),
            t[2] = x(o, t[2]),
            t[3] = x(a, t[3]),
            t[4] = x(i, t[4]),
            t
        }
        function H(e, t, n, r) {
            var o;
            for (o = 15 + (t + 65 >>> 9 << 4); e.length <= o; )
                e.push(0);
            for (e[t >>> 5] |= 128 << 24 - t % 32,
            t += n,
            e[o] = 4294967295 & t,
            e[o - 1] = t / 4294967296 | 0,
            t = e.length,
            o = 0; o < t; o += 16)
                r = G(e.slice(o, o + 16), r);
            return r
        }
        function V(e, t, n) {
            var r, o, a, c, u, s, l, f, p, d, h, m, v, y, b, g, E, w, F, B, G, H, V, q = [];
            if ("SHA-224" === n || "SHA-256" === n)
                d = 64,
                m = 1,
                H = Number,
                v = x,
                y = M,
                b = L,
                g = j,
                E = N,
                w = A,
                F = P,
                G = T,
                B = O,
                V = W;
            else {
                if ("SHA-384" !== n && "SHA-512" !== n)
                    throw Error("Unexpected error in SHA-2 implementation");
                d = 80,
                m = 2,
                H = i,
                v = D,
                y = z,
                b = U,
                g = I,
                E = R,
                w = S,
                F = k,
                G = C,
                B = _,
                V = K
            }
            for (n = t[0],
            r = t[1],
            o = t[2],
            a = t[3],
            c = t[4],
            u = t[5],
            s = t[6],
            l = t[7],
            h = 0; h < d; h += 1)
                16 > h ? (p = h * m,
                f = e.length <= p ? 0 : e[p],
                p = e.length <= p + 1 ? 0 : e[p + 1],
                q[h] = new H(f,p)) : q[h] = y(E(q[h - 2]), q[h - 7], g(q[h - 15]), q[h - 16]),
                f = b(l, F(c), B(c, u, s), V[h], q[h]),
                p = v(w(n), G(n, r, o)),
                l = s,
                s = u,
                u = c,
                c = v(a, f),
                a = o,
                o = r,
                r = n,
                n = v(f, p);
            return t[0] = v(n, t[0]),
            t[1] = v(r, t[1]),
            t[2] = v(o, t[2]),
            t[3] = v(a, t[3]),
            t[4] = v(c, t[4]),
            t[5] = v(u, t[5]),
            t[6] = v(s, t[6]),
            t[7] = v(l, t[7]),
            t
        }
        function q(e, t) {
            var n, r, o, a, c = [], u = [];
            if (null !== e)
                for (r = 0; r < e.length; r += 2)
                    t[(r >>> 1) % 5][(r >>> 1) / 5 | 0] = F(t[(r >>> 1) % 5][(r >>> 1) / 5 | 0], new i((255 & e[r + 1]) << 24 | (65280 & e[r + 1]) << 8 | (16711680 & e[r + 1]) >>> 8 | e[r + 1] >>> 24,(255 & e[r]) << 24 | (65280 & e[r]) << 8 | (16711680 & e[r]) >>> 8 | e[r] >>> 24));
            for (n = 0; 24 > n; n += 1) {
                for (a = B("SHA3-"),
                r = 0; 5 > r; r += 1)
                    c[r] = F(t[r][0], t[r][1], t[r][2], t[r][3], t[r][4]);
                for (r = 0; 5 > r; r += 1)
                    u[r] = F(c[(r + 4) % 5], b(c[(r + 1) % 5], 1));
                for (r = 0; 5 > r; r += 1)
                    for (o = 0; 5 > o; o += 1)
                        t[r][o] = F(t[r][o], u[r]);
                for (r = 0; 5 > r; r += 1)
                    for (o = 0; 5 > o; o += 1)
                        a[o][(2 * r + 3 * o) % 5] = b(t[r][o], Y[r][o]);
                for (r = 0; 5 > r; r += 1)
                    for (o = 0; 5 > o; o += 1)
                        t[r][o] = F(a[r][o], new i(~a[(r + 1) % 5][o].a & a[(r + 2) % 5][o].a,~a[(r + 1) % 5][o].b & a[(r + 2) % 5][o].b));
                t[0][0] = F(t[0][0], Q[n])
            }
            return t
        }
        var W, K, Y, Q;
        W = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298],
        K = [new i(W[0],3609767458), new i(W[1],602891725), new i(W[2],3964484399), new i(W[3],2173295548), new i(W[4],4081628472), new i(W[5],3053834265), new i(W[6],2937671579), new i(W[7],3664609560), new i(W[8],2734883394), new i(W[9],1164996542), new i(W[10],1323610764), new i(W[11],3590304994), new i(W[12],4068182383), new i(W[13],991336113), new i(W[14],633803317), new i(W[15],3479774868), new i(W[16],2666613458), new i(W[17],944711139), new i(W[18],2341262773), new i(W[19],2007800933), new i(W[20],1495990901), new i(W[21],1856431235), new i(W[22],3175218132), new i(W[23],2198950837), new i(W[24],3999719339), new i(W[25],766784016), new i(W[26],2566594879), new i(W[27],3203337956), new i(W[28],1034457026), new i(W[29],2466948901), new i(W[30],3758326383), new i(W[31],168717936), new i(W[32],1188179964), new i(W[33],1546045734), new i(W[34],1522805485), new i(W[35],2643833823), new i(W[36],2343527390), new i(W[37],1014477480), new i(W[38],1206759142), new i(W[39],344077627), new i(W[40],1290863460), new i(W[41],3158454273), new i(W[42],3505952657), new i(W[43],106217008), new i(W[44],3606008344), new i(W[45],1432725776), new i(W[46],1467031594), new i(W[47],851169720), new i(W[48],3100823752), new i(W[49],1363258195), new i(W[50],3750685593), new i(W[51],3785050280), new i(W[52],3318307427), new i(W[53],3812723403), new i(W[54],2003034995), new i(W[55],3602036899), new i(W[56],1575990012), new i(W[57],1125592928), new i(W[58],2716904306), new i(W[59],442776044), new i(W[60],593698344), new i(W[61],3733110249), new i(W[62],2999351573), new i(W[63],3815920427), new i(3391569614,3928383900), new i(3515267271,566280711), new i(3940187606,3454069534), new i(4118630271,4000239992), new i(116418474,1914138554), new i(174292421,2731055270), new i(289380356,3203993006), new i(460393269,320620315), new i(685471733,587496836), new i(852142971,1086792851), new i(1017036298,365543100), new i(1126000580,2618297676), new i(1288033470,3409855158), new i(1501505948,4234509866), new i(1607167915,987167468), new i(1816402316,1246189591)],
        Q = [new i(0,1), new i(0,32898), new i(2147483648,32906), new i(2147483648,2147516416), new i(0,32907), new i(0,2147483649), new i(2147483648,2147516545), new i(2147483648,32777), new i(0,138), new i(0,136), new i(0,2147516425), new i(0,2147483658), new i(0,2147516555), new i(2147483648,139), new i(2147483648,32905), new i(2147483648,32771), new i(2147483648,32770), new i(2147483648,128), new i(0,32778), new i(2147483648,2147483658), new i(2147483648,2147516545), new i(2147483648,32896), new i(0,2147483649), new i(2147483648,2147516424)],
        Y = [[0, 36, 3, 41, 18], [1, 44, 10, 45, 2], [62, 6, 43, 15, 61], [28, 55, 25, 21, 56], [27, 20, 39, 8, 14]],
   













function test(){

         var n = "1524136671950" //时间戳
       
          , r = new a("SHA-1","TEXT");  //就是这里不知道怎么调用,a.a是原来没改过的
                  
               
  
        r.setHMACKey("d1b964811afb40118a12068ff74a12f4", "TEXT");
        r.update("password");
        r.update("c3cef7c66a1843f8b3a9e6a1e3160e20");
        r.update("com.zhihu.web");
        r.update(n);
        return  r.getHMAC("HEX")
}

不知是否正确

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (10/10)

签到天数: 28 天

发表于 2018-4-19 20:41:11 | 显示全部楼层   湖南省永州市
我看了一下,你基本没怎么改,直接复制的。a.a()是一个构造函数。r = new a.a("SHA-1","TEXT")  这句代码是实例化了一个对象。第二个a是第一个a的一个方法。所以不管第一个a,直接找第二个a。第二个a在上面的那个匿名函数里面。把匿名函数拆了,就可以了
QQ截图20180419204052.jpg
回复

使用道具 举报

结帖率:57% (8/14)
 楼主| 发表于 2018-4-19 20:53:25 | 显示全部楼层   广东省珠海市
nha30 发表于 2018-4-19 20:41
我看了一下,你基本没怎么改,直接复制的。a.a()是一个构造函数。r = new a.a("SHA-1","TEXT")  这句代码 ...

我把匿名函数拆了,他会报这个   Microsoft JScript 运行时错误 【't' 未定义】

是我拆得不对吗?

感觉还是基础有点差,能详细说下吗?
麻烦了。
回复

使用道具 举报

结帖率:57% (8/14)
 楼主| 发表于 2018-4-19 20:54:47 | 显示全部楼层   广东省珠海市
nha30 发表于 2018-4-19 20:41
我看了一下,你基本没怎么改,直接复制的。a.a()是一个构造函数。r = new a.a("SHA-1","TEXT")  这句代码 ...

这些报的未定义都是被我删掉的那个 function(e, t, n) {  

这里的3个参数
回复

使用道具 举报

结帖率:57% (8/14)
 楼主| 发表于 2018-4-19 22:08:41 | 显示全部楼层   广东省珠海市
冯古屋 发表于 2018-4-19 21:58
function a(e, t, n) {
            var r, o, a, i, c, u, s, l, y, b = 0, g = [], E = 0, w  ...

大佬,我看你把这个 e.lastIndexOf  这个东西都改掉了,为什么要改这里啊,还有是将这个报错的都删掉吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表