易语言百度DV算法开源源码

易语言百度DV算法开源源码

   function n(e) {
            var t = [[48, 57], [65, 90], [97, 122], [45, 45], [126, 126]]
              , n = o(t)
              , a = o(t.slice(1));
            e && (n = r(n, e),
            a = r(a, e)),
            this.dict = n,
            this.dict2 = a
        }
        function r(e, t) {
            for (var n = t.split(""), r = 0; r < e.length; r++) {
                var o = r % n.length;
                o = n[o].charCodeAt(0),
                o %= e.length;
                var a = e[r];
                e[r] = e[o],
                e[o] = a
            }
            return e
        }
        function o(e) {
            for (var t = [], n = 0; n < e.length; n++)
                for (var r = e[n][0]; r <= e[n][1]; r++)
                    t.push(String.fromCharCode(r));
            return t
        }
        function a(e, t) {
            var n = ""
              , r = Math.abs(parseInt(e));
            if (r)
                for (; r; )
                    n += t[r % t.length],
                    r = parseInt(r / t.length);
            else
                n = t[0];
            return n
        }
 
  function S(e, t) {
            var r = new n(t)
              , o = {
                flashInfo: 0,
                mouseDown: 1,
                keyDown: 2,
                mouseMove: 3,
                version: 4,
                loadTime: 5,
                browserInfo: 6,
                token: 7,
                location: 8,
                screenInfo: 9
            }
              , a = [r.iary([2])];
            for (var i in e) {
                var d = e[i];
                if (void 0 !== d && void 0 !== o[i]) {
                    var c;
                    "number" == typeof d ? (c = d >= 0 ? 1 : 2,
                    d = r.int(d)) : "boolean" == typeof d ? (c = 3,
                    d = r.int(d ? 1 : 0)) : "object" == typeof d && d instanceof Array ? (c = 4,
                    d = r.bary(d)) : (c = 0,
                    d = r.str(d + "")),
                    d && a.push(r.iary([o[i], c, d.length]) + d)
                }
                
            }
          return a.join("");
        }
n.prototype = {
            "int": function(e) {
                return a(e, this.dict)
            },
            iary: function(e) {
                for (var t = "", n = 0; n < e.length; n++) {
                    var r = a(e[n], this.dict2);
                    t += r.length > 1 ? r.length - 2 + r : r
                }
                return t
            },
            bary: function(e) {
                for (var t = 0, n = {}, r = 0; r < e.length; r++)
                    e[r] > t && (t = e[r],
                    n[e[r]] = !0);
                var o = parseInt(t / 6);
                o += t % 6 ? 1 : 0;
                for (var a = "", r = 0; o > r; r++) {
                    for (var i = 6 * r, d = 0, c = 0; 6 > c; c++)
                        n[i] && (d += Math.pow(2, c)),
                        i++;
                    a += this.dict[d]
                }
                return a
            },
            str: function(e) {
                for (var t = [], n = 0; n < e.length; n++) {
                    var r = e.charCodeAt(n);
                    r >= 1 && 127 >= r ? t.push(r) : r > 2047 ? (t.push(224 | r >> 12 & 15),
                    t.push(128 | r >> 6 & 63),
                    t.push(128 | r >> 0 & 63)) : (t.push(192 | r >> 6 & 31),
                    t.push(128 | r >> 0 & 63))
                }
                for (var o = "", n = 0, a = t.length; a > n; ) {
                    var i = t[n++];
                    if (n >= a) {
                        o += this.dict[i >> 2],
                        o += this.dict[(3 & i) << 4],
                        o += "__";
                        break
                    }
                    var d = t[n++];
                    if (n >= a) {
                        o += this.dict[i >> 2],
                        o += this.dict[(3 & i) << 4 | (240 & d) >> 4],
                        o += this.dict[(15 & d) << 2],
                        o += "_";
                        break
                    }
                    var c = t[n++];
                    o += this.dict[i >> 2],
                    o += this.dict[(3 & i) << 4 | (240 & d) >> 4],
                    o += this.dict[(15 & d) << 2 | (192 & c) >> 6],
                    o += this.dict[63 & c]
                }
                return o
            } 
 }
 
 function d(e) {
           var x = e.token + "@" + S(e, e.token);
      return x;     
           }
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注