淘宝UA算法中的核心函数

这个代码是用来生成UA值,这个代码的代码段
在这里插入图片描述

期中这个就是生成UA算法的结果值

   function c() {
        for (var a = 1; void 0 !== a; ) {
            var s = 3 & a
              , c = a >> 2
              , r = 3 & c;
            switch (s) {
            case 0:
                !function() {
                    switch (r) {
                    case 0:
                        a = o < b.length ? 2 : 3;
                        break;
                    case 1:
                        o++,
                        a = 0
                    }
                }();
                break;
            case 1:
                var b = "\u02f6\u02e2\u02ff\u02fd\u02d3\u02ff\u02fd\u02e0\u02f1\u02e4\u02f9\u02f2\u02f9\u02fc\u02f9\u02e4\u02e9"
                  , k = ""
                  , o = 0;
                a = 0;
                break;
            case 2:
                var t = 656 ^ b.charCodeAt(o);
                k += String.fromCharCode(t),
                a = 4;
                break;
            case 3:
                v[k] = 1;
                var n = e(14, v);
                return n
            }
        }
    }

看一下 这个v,是什么参数,通过调试发现,这个值是有window.UA_opt传递的
淘宝UA算法中的核心函数_第1张图片
这个117.js启动函数就是讲window.opt复制给v,来看一下window_opt如何生成的

 for (var h = 3; void 0 !== h; ) {
        var p = 7 & h
          , u = h >> 3
          , d = 7 & u;
        switch (p) {
        case 0:
            !function() {
                switch (d) {
                case 0:
                    m = {},
                    h = 1
                }
            }();
            break;
        case 1:
            window.UA_Opt = m;
            var v = window.UA_Opt
              , l = v.loadTime;
            h = l ? 2 : 4;
            break;
        case 2:
            var g = new Date;
            v.loadTime = +g,
            h = 4;
            break;
        case 3:
            var f = [];
            f.unshift([]);
            var C = "__acjs_awsc_117"
              , w = []
              , m = window.UA_Opt
              , S = !m;
            h = S ? 0 : 1;
            break;
        case 4:
            var A = 0, x, j, O, y = 0, E = "", $ = {};
            y = 7,
            e(15),
            h = void 0
        }
    }

https://g.alicdn.com/sd/ncpc/nc.js?t=2019051211 这个js文件就是用来生成window_opt
淘宝UA算法中的核心函数_第2张图片
最后就是执行117.js里面的代码e 函数,将上面的 v传进 function e(r, n, i, h, p){}即可

你可能感兴趣的:(淘宝UA算法中的核心函数)