查找函数:sinaSSOEncoder.hex_sha1 // 用户名加密
        request.su = sinaSSOEncoder.base64.encode(urlencode(username));
// 密码加密
            password = sinaSSOEncoder.hex_sha1("" + sinaSSOEncoder.hex_sha1(sinaSSOEncoder.hex_sha1(password)) + me.servertime + me.nonce)
var sinaSSOEncoder = sinaSSOEncoder || {};
(function () {
    var i = 0;
    var g = 8;
    this.hex_sha1 = function (j) {
        return h(b(f(j), j.length * g))
    };
    var b = function (A, r) {
        A[r >> 5] |= 128 << (24 - r % 32);
        A[((r + 64 >> 9) << 4) + 15] = r;
        var B = Array(80);
        var z = 1732584193;
        var y = -271733879;
        var v = -1732584194;
        var u = 271733878;
        var s = -1009589776;
        for (var o = 0; o < A.length; o += 16) {
            var q = z;
            var p = y;
            var n = v;
            var m = u;
            var k = s;
            for (var l = 0; l < 80; l++) {
                if (l < 16) {
                    B[l] = A[o + l]
                } else {
                    B[l] = d(B[l - 3] ^ B[l - 8] ^ B[l - 14] ^ B[l - 16], 1)
                }
                var C = e(e(d(z, 5), a(l, y, v, u)), e(e(s, B[l]), c(l)));
                s = u;
                u = v;
                v = d(y, 30);
                y = z;
                z = C
            }
            z = e(z, q);
            y = e(y, p);
            v = e(v, n);
            u = e(u, m);
            s = e(s, k)
        }
        return Array(z, y, v, u, s)
    };
    var a = function (k, j, m, l) {
        if (k < 20) {
            return (j & m) | ((~j) & l)
        }
        if (k < 40) {
            return j ^ m ^ l
        }
        if (k < 60) {
            return (j & m) | (j & l) | (m & l)
        }
        return j ^ m ^ l
    };
    var c = function (j) {
        return (j < 20) ? 1518500249 : (j < 40) ? 1859775393 : (j < 60) ? -1894007588 : -899497514
    };
    var e = function (j, m) {
        var l = (j & 65535) + (m & 65535);
        var k = (j >> 16) + (m >> 16) + (l >> 16);
        return (k << 16) | (l & 65535)
    };
    var d = function (j, k) {
        return (j << k) | (j >>> (32 - k))
    };
    var f = function (m) {
        var l = Array();
        var j = (1 << g) - 1;
        for (var k = 0; k < m.length * g; k += g) {
            l[k >> 5] |= (m.charCodeAt(k / g) & j) << (24 - k % 32)
        }
        return l
    };
    var h = function (l) {
        var k = i ? "0123456789ABCDEF" : "0123456789abcdef";
        var m = "";
        for (var j = 0; j < l.length * 4; j++) {
            m += k.charAt((l[j >> 2] >> ((3 - j % 4) * 8 + 4)) & 15) + k.charAt((l[j >> 2] >> ((3 - j % 4) * 8)) & 15)
        }
        return m
    };
    this.base64 = {
        encode: function (l) {
            l = "" + l;
            if (l == "") {
                return ""
            }
            var j = "";
            var s, q, o = "";
            var r, p, n, m = "";
            var k = 0;
            do {
                s = l.charCodeAt(k++);
                q = l.charCodeAt(k++);
                o = l.charCodeAt(k++);
                r = s >> 2;
                p = ((s & 3) << 4) | (q >> 4);
                n = ((q & 15) << 2) | (o >> 6);
                m = o & 63;
                if (isNaN(q)) {
                    n = m = 64
                } else {
                    if (isNaN(o)) {
                        m = 64
                    }
                }
                j = j + this._keys.charAt(r) + this._keys.charAt(p) + this._keys.charAt(n) + this._keys.charAt(m);
                s = q = o = "";
                r = p = n = m = ""
            } while (k < l.length);
            return j
        },
        _keys: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
    }
}).call(sinaSSOEncoder);

解决方案 »

  1.   

    Quote: 引用 1 楼 hch126163 的回复:

    查找函数:sinaSSOEncoder.hex_sha1 // 用户名加密
            request.su = sinaSSOEncoder.base64.encode(urlencode(username));
    // 密码加密
                password = sinaSSOEncoder.hex_sha1("" + sinaSSOEncoder.hex_sha1(sinaSSOEncoder.hex_sha1(password)) + me.servertime + me.nonce)
    var sinaSSOEncoder = sinaSSOEncoder || {};这个是以前的吧,现在加密后的密码是这样的
    0eef611ecdfe34f8b0fbf7bb706988c70b6bda8cea015c645554e6a1c7f72bd89da4cb4990eec8e39bf6e6430d4bd374ff468298f0f3ab2c3f36bca63bec2b11fa26ae5f81766dd7b9f3a90b74eb378cdda5cafad646be96bd1d0964c4ad9bc65977173e537acb41c83a23e215d97b2f38ffe502cfb1c891a5da3ae5935ac617这不是sha1加密方式的吧
      

  2.   

    确实是用了RSA加密方式,结贴吧