代码分析之-广东省公共资源交易平台

广东省公共资源交易平台:广东省公共资源交易平台

hex点位:

难点在与需要单步调试很久才能看见加密的位置,如果熟悉加密的方式可以直接通过搜索得到

function Xq() {
    return bg || (bg = 1,
    function(e, t) {
        (function(n, u) {
            e.exports = u()
        }
        )(an, function() {
            var n = n || function(u, o) {
                var r;
                if (typeof window < "u" && window.crypto && (r = window.crypto),
                typeof self < "u" && self.crypto && (r = self.crypto),
                typeof globalThis < "u" && globalThis.crypto && (r = globalThis.crypto),
                !r && typeof window < "u" && window.msCrypto && (r = window.msCrypto),
                !r && typeof an < "u" && an.crypto && (r = an.crypto),
                !r && typeof Zq == "function")
                    try {
                        r = Wy
                    } catch {}
                var s = function() {
                    if (r) {
                        if (typeof r.getRandomValues == "function")
                            try {
                                return r.getRandomValues(new Uint32Array(1))[0]
                            } catch {}
                        if (typeof r.randomBytes == "function")
                            try {
                                return r.randomBytes(4).readInt32LE()
                            } catch {}
                    }
                    throw new Error("Native crypto module could not be used to get secure random number.")
                }
                  , i = Object.create || function() {
                    function v() {}
                    return function(y) {
                        var E;
                        return v.prototype = y,
                        E = new v,
                        v.prototype = null,
                        E
                    }
                }()
                  , a = {}
                  , l = a.lib = {}
                  , c = l.Base = function() {
                    return {
                        extend: function(v) {
                            var y = i(this);
                            return v && y.mixIn(v),
                            (!y.hasOwnProperty("init") || this.init === y.init) && (y.init = function() {
                                y.$super.init.apply(this, arguments)
                            }
                            ),
                            y.init.prototype = y,
                            y.$super = this,
                            y
                        },
                        create: function() {
                            var v = this.extend();
                            return v.init.apply(v, arguments),
                            v
                        },
                        init: function() {},
                        mixIn: function(v) {
                            for (var y in v)
                                v.hasOwnProperty(y) && (this[y] = v[y]);
                            v.hasOwnProperty("toString") && (this.toString = v.toString)
                        },
                        clone: function() {
                            return this.init.prototype.extend(this)
                        }
                    }
                }()
                  , d = l.WordArray = c.extend({
                    init: function(v, y) {
                        v = this.words = v || [],
                        y != o ? this.sigBytes = y : this.sigBytes = v.length * 4
                    },
                    toString: function(v) {
                        return (v || p).stringify(this)
                    },
                    concat: function(v) {
                        var y = this.words
                          , E = v.words
                          , B = this.sigBytes
                          , A = v.sigBytes;
                        if (this.clamp(),
                        B % 4)
                            for (var _ = 0; _ < A; _++) {
                                var O = E[_ >>> 2] >>> 24 - _ % 4 * 8 & 255;
                                y[B + _ >>> 2] |= O << 24 - (B + _) % 4 * 8
                            }
                        else
                            for (var P = 0; P < A; P += 4)
                                y[B + P >>> 2] = E[P >>> 2];
                        return this.sigBytes += A,
                        this
                    },
                    clamp: function() {
                        var v = this.words
                          , y = this.sigBytes;
                        v[y >>> 2] &= 4294967295 << 32 - y % 4 * 8,
                        v.length = u.ceil(y / 4)
                    },
                    clone: function() {
                        var v = c.clone.call(this);
                        return v.words = this.words.slice(0),
                        v
                    },
                    random: function(v) {
                        for (var y = [], E = 0; E < v; E += 4)
                            y.push(s());
                        return new d.init(y,v)
                    }
                })
                  , f = a.enc = {}
                  , p = f.Hex = {
                    stringify: function(v) {
                        for (var y = v.words, E = v.sigBytes, B = [], A = 0; A < E; A++) {
                            var _ = y[A >>> 2] >>> 24 - A % 4 * 8 & 255;
                            B.push((_ >>> 4).toString(16)),
                            B.push((_ & 15).toString(16))
                        }
                        return B.join("")
                    },
                    parse: function(v) {
                        for (var y = v.length, E = [], B = 0; B < y; B += 2)
                            E[B >>> 3] |= parseInt(v.substr(B, 2), 16) << 24 - B % 8 * 4;
                        return new d.init(E,y / 2)
                    }
                }
                  , h = f.Latin1 = {
                    stringify: function(v) {
                        for (var y = v.words, E = v.sigBytes, B = [], A = 0; A < E; A++) {
                            var _ = y[A >>> 2] >>> 24 - A % 4 * 8 & 255;
                            B.push(String.fromCharCode(_))
                        }
                        return B.join("")
                    },
                    parse: function(v) {
                        for (var y = v.length, E = [], B = 0; B < y; B++)
                            E[B >>> 2] |= (v.charCodeAt(B) & 255) << 24 - B % 4 * 8;
                        return new d.init(E,y)
                    }
                }
                  , m = f.Utf8 = {
                    stringify: function(v) {
                        try {
                            return decodeURIComponent(escape(h.stringify(v)))
                        } catch {
                            throw new Error("Malformed UTF-8 data")
                        }
                    },
                    parse: function(v) {
                        return h.parse(unescape(encodeURIComponent(v)))
                    }
                }
                  , C = l.BufferedBlockAlgorithm = c.extend({
                    reset: function() {
                        this._data = new d.init,
                        this._nDataBytes = 0
                    },
                    _append: function(v) {
                        typeof v == "string" && (v = m.parse(v)),
                        this._data.concat(v),
                        this._nDataBytes += v.sigBytes
                    },
                    _process: function(v) {
                        var y, E = this._data, B = E.words, A = E.sigBytes, _ = this.blockSize, O = _ * 4, P = A / O;
                        v ? P = u.ceil(P) : P = u.max((P | 0) - this._minBufferSize, 0);
                        var L = P * _
                          , ue = u.min(L * 4, A);
                        if (L) {
                            for (var N = 0; N < L; N += _)
                                this._doProcessBlock(B, N);
                            y = B.splice(0, L),
                            E.sigBytes -= ue
                        }
                        return new d.init(y,ue)
                    },
                    clone: function() {
                        var v = c.clone.call(this);
                        return v._data = this._data.clone(),
                        v
                    },
                    _minBufferSize: 0
                });
                l.Hasher = C.extend({
                    cfg: c.extend(),
                    init: function(v) {
                        this.cfg = this.cfg.extend(v),
                        this.reset()
                    },
                    reset: function() {
                        C.reset.call(this),
                        this._doReset()
                    },
                    update: function(v) {
                        return this._append(v),
                        this._process(),
                        this
                    },
                    finalize: function(v) {
                        v && this._append(v);
                        var y = this._doFinalize();
                        return y
                    },
                    blockSize: 16,
                    _createHelper: function(v) {
                        return function(y, E) {
                            return new v.init(E).finalize(y)
                        }
                    },
                    _createHmacHelper: function(v) {
                        return function(y, E) {
                            return new g.HMAC.init(v,E).finalize(y)
                        }
                    }
                });
                var g = a.algo = {};
                return a
            }(Math);
            return n
        })
    }(Vd)),
    Vd.exports
}

代码分析之-广东省公共资源交易平台_第1张图片

你可能感兴趣的:(python,javascript,前端,开发语言)