js 破解 xxxx登錄

aHR0cHM6Ly93d3cudGFwZC5jbi9jbG91ZF9sb2dpbnMvbG9naW4=

import requests
import execjs


url = 'https://www.tapd.cn/cloud_logins/login?ref=https%3A%2F%2Fwww.tapd.cn%2Fmy_worktable%3Fleft_tree%3D1'

phone = ''
password = ''

ctx = execjs.compile(open('get_pwd.js', 'r').read())
params = ctx.call('get_params',password)
print(params)

headers = {
    "Referer": "https://www.tapd.cn/cloud_logins/login?ref=https%3A%2F%2Fwww.tapd.cn%2Fmy_worktable%3Fleft_tree%3D1",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36",
}
data = {
    'data[Login][ref]': 'https://www.tapd.cn/my_worktable?left_tree=1',
    'data[Login][encrypt_key]': params[2],
    'data[Login][encrypt_iv]':params[1],
    'data[Login][site]': 'TAPD',
    'data[Login][via]': 'encrypt_password',
    'data[Login][email]': phone,
    'data[Login][password]':params[0],
    'data[Login][login]': 'login',
    'dsc_token': 'rstmmCAzYguu6zvh',


}
s = requests.Session()
res = s.post(url,data=data,headers=headers)
res.encoding = res.apparent_encoding
# print('post請求:',res.text)

print('==='*20)
print('==='*20)
print('==='*20)

# html = s.get('https://www.tapd.cn/my_worktable?left_tree=1&left_tree=1')
# html.encoding = html.apparent_encoding
# print(html.text)

html = s.get('https://www.tapd.cn/43274983/workspaces/workspace_edit')
html.encoding = html.apparent_encoding
print(html.text)

 

var CryptoJS = CryptoJS || function(t, e) {
    var r = {}
        , i = r.lib = {}
        , n = function() {}
        , s = i.Base = {
        extend: function(t) {
            n.prototype = this;
            var e = new n;
            return t && e.mixIn(t),
            e.hasOwnProperty("init") || (e.init = function() {
                    e.$super.init.apply(this, arguments)
                }
            ),
                e.init.prototype = e,
                e.$super = this,
                e
        },
        create: function() {
            var t = this.extend();
            return t.init.apply(t, arguments),
                t
        },
        init: function() {},
        mixIn: function(t) {
            for (var e in t)
                t.hasOwnProperty(e) && (this[e] = t[e]);
            t.hasOwnProperty("toString") && (this.toString = t.toString)
        },
        clone: function() {
            return this.init.prototype.extend(this)
        }
    }
        , o = i.WordArray = s.extend({
        init: function(t, r) {
            t = this.words = t || [],
                this.sigBytes = r != e ? r : 4 * t.length
        },
        toString: function(t) {
            return (t || a).stringify(this)
        },
        concat: function(t) {
            var e = this.words
                , r = t.words
                , i = this.sigBytes;
            if (t = t.sigBytes,
                this.clamp(),
            i % 4)
                for (var n = 0; t > n; n++)
                    e[i + n >>> 2] |= (r[n >>> 2] >>> 24 - 8 * (n % 4) & 255) << 24 - 8 * ((i + n) % 4);
            else if (65535 < r.length)
                for (n = 0; t > n; n += 4)
                    e[i + n >>> 2] = r[n >>> 2];
            else
                e.push.apply(e, r);
            return this.sigBytes += t,
                this
        },
        clamp: function() {
            var e = this.words
                , r = this.sigBytes;
            e[r >>> 2] &= 4294967295 << 32 - 8 * (r % 4),
                e.length = t.ceil(r / 4)
        },
        clone: function() {
            var t = s.clone.call(this);
            return t.words = this.words.slice(0),
                t
        },
        random: function(e) {
            for (var r = [], i = 0; e > i; i += 4)
                r.push(4294967296 * t.random() | 0);
            return new o.init(r,e)
        }
    })
        , c = r.enc = {}
        , a = c.Hex = {
        stringify: function(t) {
            var e = t.words;
            t = t.sigBytes;
            for (var r = [], i = 0; t > i; i++) {
                var n = e[i >>> 2] >>> 24 - 8 * (i % 4) & 255;
                r.push((n >>> 4).toString(16)),
                    r.push((15 & n).toString(16))
            }
            return r.join("")
        },
        parse: function(t) {
            for (var e = t.length, r = [], i = 0; e > i; i += 2)
                r[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - 4 * (i % 8);
            return new o.init(r,e / 2)
        }
    }
        , f = c.Latin1 = {
        stringify: function(t) {
            var e = t.words;
            t = t.sigBytes;
            for (var r = [], i = 0; t > i; i++)
                r.push(String.fromCharCode(e[i >>> 2] >>> 24 - 8 * (i % 4) & 255));
            return r.join("")
        },
        parse: function(t) {
            for (var e = t.length, r = [], i = 0; e > i; i++)
                r[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - 8 * (i % 4);
            return new o.init(r,e)
        }
    }
        , h = c.Utf8 = {
        stringify: function(t) {
            try {
                return decodeURIComponent(escape(f.stringify(t)))
            } catch (e) {
                throw Error("Malformed UTF-8 data")
            }
        },
        parse: function(t) {
            return f.parse(unescape(encodeURIComponent(t)))
        }
    }
        , u = i.BufferedBlockAlgorithm = s.extend({
        reset: function() {
            this._data = new o.init,
                this._nDataBytes = 0
        },
        _append: function(t) {
            "string" == typeof t && (t = h.parse(t)),
                this._data.concat(t),
                this._nDataBytes += t.sigBytes
        },
        _process: function(e) {
            var r = this._data
                , i = r.words
                , n = r.sigBytes
                , s = this.blockSize
                , c = n / (4 * s)
                , c = e ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0);
            if (e = c * s,
                n = t.min(4 * e, n),
                e) {
                for (var a = 0; e > a; a += s)
                    this._doProcessBlock(i, a);
                a = i.splice(0, e),
                    r.sigBytes -= n
            }
            return new o.init(a,n)
        },
        clone: function() {
            var t = s.clone.call(this);
            return t._data = this._data.clone(),
                t
        },
        _minBufferSize: 0
    });
    i.Hasher = u.extend({
        cfg: s.extend(),
        init: function(t) {
            this.cfg = this.cfg.extend(t),
                this.reset()
        },
        reset: function() {
            u.reset.call(this),
                this._doReset()
        },
        update: function(t) {
            return this._append(t),
                this._process(),
                this
        },
        finalize: function(t) {
            return t && this._append(t),
                this._doFinalize()
        },
        blockSize: 16,
        _createHelper: function(t) {
            return function(e, r) {
                return new t.init(r).finalize(e)
            }
        },
        _createHmacHelper: function(t) {
            return function(e, r) {
                return new p.HMAC.init(t,r).finalize(e)
            }
        }
    });
    var p = r.algo = {};
    return r
}(Math);
!function() {
    var t = CryptoJS
        , e = t.lib.WordArray;
    t.enc.Base64 = {
        stringify: function(t) {
            var e = t.words
                , r = t.sigBytes
                , i = this._map;
            t.clamp(),
                t = [];
            for (var n = 0; r > n; n += 3)
                for (var s = (e[n >>> 2] >>> 24 - 8 * (n % 4) & 255) << 16 | (e[n + 1 >>> 2] >>> 24 - 8 * ((n + 1) % 4) & 255) << 8 | e[n + 2 >>> 2] >>> 24 - 8 * ((n + 2) % 4) & 255, o = 0; 4 > o && r > n + .75 * o; o++)
                    t.push(i.charAt(s >>> 6 * (3 - o) & 63));
            if (e = i.charAt(64))
                for (; t.length % 4; )
                    t.push(e);
            return t.join("")
        },
        parse: function(t) {
            var r = t.length
                , i = this._map
                , n = i.charAt(64);
            n && (n = t.indexOf(n),
            -1 != n && (r = n));
            for (var n = [], s = 0, o = 0; r > o; o++)
                if (o % 4) {
                    var c = i.indexOf(t.charAt(o - 1)) << 2 * (o % 4)
                        , a = i.indexOf(t.charAt(o)) >>> 6 - 2 * (o % 4);
                    n[s >>> 2] |= (c | a) << 24 - 8 * (s % 4),
                        s++
                }
            return e.create(n, s)
        },
        _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
    }
}(),
    function(t) {
        function e(t, e, r, i, n, s, o) {
            return t = t + (e & r | ~e & i) + n + o,
            (t << s | t >>> 32 - s) + e
        }
        function r(t, e, r, i, n, s, o) {
            return t = t + (e & i | r & ~i) + n + o,
            (t << s | t >>> 32 - s) + e
        }
        function i(t, e, r, i, n, s, o) {
            return t = t + (e ^ r ^ i) + n + o,
            (t << s | t >>> 32 - s) + e
        }
        function n(t, e, r, i, n, s, o) {
            return t = t + (r ^ (e | ~i)) + n + o,
            (t << s | t >>> 32 - s) + e
        }
        for (var s = CryptoJS, o = s.lib, c = o.WordArray, a = o.Hasher, o = s.algo, f = [], h = 0; 64 > h; h++)
            f[h] = 4294967296 * t.abs(t.sin(h + 1)) | 0;
        o = o.MD5 = a.extend({
            _doReset: function() {
                this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878])
            },
            _doProcessBlock: function(t, s) {
                for (var o = 0; 16 > o; o++) {
                    var c = s + o
                        , a = t[c];
                    t[c] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8)
                }
                var o = this._hash.words
                    , c = t[s + 0]
                    , a = t[s + 1]
                    , h = t[s + 2]
                    , u = t[s + 3]
                    , p = t[s + 4]
                    , d = t[s + 5]
                    , l = t[s + 6]
                    , y = t[s + 7]
                    , _ = t[s + 8]
                    , v = t[s + 9]
                    , g = t[s + 10]
                    , B = t[s + 11]
                    , m = t[s + 12]
                    , x = t[s + 13]
                    , S = t[s + 14]
                    , k = t[s + 15]
                    , z = o[0]
                    , C = o[1]
                    , w = o[2]
                    , D = o[3]
                    , z = e(z, C, w, D, c, 7, f[0])
                    , D = e(D, z, C, w, a, 12, f[1])
                    , w = e(w, D, z, C, h, 17, f[2])
                    , C = e(C, w, D, z, u, 22, f[3])
                    , z = e(z, C, w, D, p, 7, f[4])
                    , D = e(D, z, C, w, d, 12, f[5])
                    , w = e(w, D, z, C, l, 17, f[6])
                    , C = e(C, w, D, z, y, 22, f[7])
                    , z = e(z, C, w, D, _, 7, f[8])
                    , D = e(D, z, C, w, v, 12, f[9])
                    , w = e(w, D, z, C, g, 17, f[10])
                    , C = e(C, w, D, z, B, 22, f[11])
                    , z = e(z, C, w, D, m, 7, f[12])
                    , D = e(D, z, C, w, x, 12, f[13])
                    , w = e(w, D, z, C, S, 17, f[14])
                    , C = e(C, w, D, z, k, 22, f[15])
                    , z = r(z, C, w, D, a, 5, f[16])
                    , D = r(D, z, C, w, l, 9, f[17])
                    , w = r(w, D, z, C, B, 14, f[18])
                    , C = r(C, w, D, z, c, 20, f[19])
                    , z = r(z, C, w, D, d, 5, f[20])
                    , D = r(D, z, C, w, g, 9, f[21])
                    , w = r(w, D, z, C, k, 14, f[22])
                    , C = r(C, w, D, z, p, 20, f[23])
                    , z = r(z, C, w, D, v, 5, f[24])
                    , D = r(D, z, C, w, S, 9, f[25])
                    , w = r(w, D, z, C, u, 14, f[26])
                    , C = r(C, w, D, z, _, 20, f[27])
                    , z = r(z, C, w, D, x, 5, f[28])
                    , D = r(D, z, C, w, h, 9, f[29])
                    , w = r(w, D, z, C, y, 14, f[30])
                    , C = r(C, w, D, z, m, 20, f[31])
                    , z = i(z, C, w, D, d, 4, f[32])
                    , D = i(D, z, C, w, _, 11, f[33])
                    , w = i(w, D, z, C, B, 16, f[34])
                    , C = i(C, w, D, z, S, 23, f[35])
                    , z = i(z, C, w, D, a, 4, f[36])
                    , D = i(D, z, C, w, p, 11, f[37])
                    , w = i(w, D, z, C, y, 16, f[38])
                    , C = i(C, w, D, z, g, 23, f[39])
                    , z = i(z, C, w, D, x, 4, f[40])
                    , D = i(D, z, C, w, c, 11, f[41])
                    , w = i(w, D, z, C, u, 16, f[42])
                    , C = i(C, w, D, z, l, 23, f[43])
                    , z = i(z, C, w, D, v, 4, f[44])
                    , D = i(D, z, C, w, m, 11, f[45])
                    , w = i(w, D, z, C, k, 16, f[46])
                    , C = i(C, w, D, z, h, 23, f[47])
                    , z = n(z, C, w, D, c, 6, f[48])
                    , D = n(D, z, C, w, y, 10, f[49])
                    , w = n(w, D, z, C, S, 15, f[50])
                    , C = n(C, w, D, z, d, 21, f[51])
                    , z = n(z, C, w, D, m, 6, f[52])
                    , D = n(D, z, C, w, u, 10, f[53])
                    , w = n(w, D, z, C, g, 15, f[54])
                    , C = n(C, w, D, z, a, 21, f[55])
                    , z = n(z, C, w, D, _, 6, f[56])
                    , D = n(D, z, C, w, k, 10, f[57])
                    , w = n(w, D, z, C, l, 15, f[58])
                    , C = n(C, w, D, z, x, 21, f[59])
                    , z = n(z, C, w, D, p, 6, f[60])
                    , D = n(D, z, C, w, B, 10, f[61])
                    , w = n(w, D, z, C, h, 15, f[62])
                    , C = n(C, w, D, z, v, 21, f[63]);
                o[0] = o[0] + z | 0,
                    o[1] = o[1] + C | 0,
                    o[2] = o[2] + w | 0,
                    o[3] = o[3] + D | 0
            },
            _doFinalize: function() {
                var e = this._data
                    , r = e.words
                    , i = 8 * this._nDataBytes
                    , n = 8 * e.sigBytes;
                r[n >>> 5] |= 128 << 24 - n % 32;
                var s = t.floor(i / 4294967296);
                for (r[(n + 64 >>> 9 << 4) + 15] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8),
                         r[(n + 64 >>> 9 << 4) + 14] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8),
                         e.sigBytes = 4 * (r.length + 1),
                         this._process(),
                         e = this._hash,
                         r = e.words,
                         i = 0; 4 > i; i++)
                    n = r[i],
                        r[i] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8);
                return e
            },
            clone: function() {
                var t = a.clone.call(this);
                return t._hash = this._hash.clone(),
                    t
            }
        }),
            s.MD5 = a._createHelper(o),
            s.HmacMD5 = a._createHmacHelper(o)
    }(Math),
    function() {
        var t = CryptoJS
            , e = t.lib
            , r = e.Base
            , i = e.WordArray
            , e = t.algo
            , n = e.EvpKDF = r.extend({
            cfg: r.extend({
                keySize: 4,
                hasher: e.MD5,
                iterations: 1
            }),
            init: function(t) {
                this.cfg = this.cfg.extend(t)
            },
            compute: function(t, e) {
                for (var r = this.cfg, n = r.hasher.create(), s = i.create(), o = s.words, c = r.keySize, r = r.iterations; o.length < c; ) {
                    a && n.update(a);
                    var a = n.update(t).finalize(e);
                    n.reset();
                    for (var f = 1; r > f; f++)
                        a = n.finalize(a),
                            n.reset();
                    s.concat(a)
                }
                return s.sigBytes = 4 * c,
                    s
            }
        });
        t.EvpKDF = function(t, e, r) {
            return n.create(r).compute(t, e)
        }
    }(),
CryptoJS.lib.Cipher || function(t) {
    var e = CryptoJS
        , r = e.lib
        , i = r.Base
        , n = r.WordArray
        , s = r.BufferedBlockAlgorithm
        , o = e.enc.Base64
        , c = e.algo.EvpKDF
        , a = r.Cipher = s.extend({
        cfg: i.extend(),
        createEncryptor: function(t, e) {
            return this.create(this._ENC_XFORM_MODE, t, e)
        },
        createDecryptor: function(t, e) {
            return this.create(this._DEC_XFORM_MODE, t, e)
        },
        init: function(t, e, r) {
            this.cfg = this.cfg.extend(r),
                this._xformMode = t,
                this._key = e,
                this.reset()
        },
        reset: function() {
            s.reset.call(this),
                this._doReset()
        },
        process: function(t) {
            return this._append(t),
                this._process()
        },
        finalize: function(t) {
            return t && this._append(t),
                this._doFinalize()
        },
        keySize: 4,
        ivSize: 4,
        _ENC_XFORM_MODE: 1,
        _DEC_XFORM_MODE: 2,
        _createHelper: function(t) {
            return {
                encrypt: function(e, r, i) {
                    return ("string" == typeof r ? l : d).encrypt(t, e, r, i)
                },
                decrypt: function(e, r, i) {
                    return ("string" == typeof r ? l : d).decrypt(t, e, r, i)
                }
            }
        }
    });
    r.StreamCipher = a.extend({
        _doFinalize: function() {
            return this._process(!0)
        },
        blockSize: 1
    });
    var f = e.mode = {}
        , h = function(e, r, i) {
        var n = this._iv;
        n ? this._iv = t : n = this._prevBlock;
        for (var s = 0; i > s; s++)
            e[r + s] ^= n[s]
    }
        , u = (r.BlockCipherMode = i.extend({
        createEncryptor: function(t, e) {
            return this.Encryptor.create(t, e)
        },
        createDecryptor: function(t, e) {
            return this.Decryptor.create(t, e)
        },
        init: function(t, e) {
            this._cipher = t,
                this._iv = e
        }
    })).extend();
    u.Encryptor = u.extend({
        processBlock: function(t, e) {
            var r = this._cipher
                , i = r.blockSize;
            h.call(this, t, e, i),
                r.encryptBlock(t, e),
                this._prevBlock = t.slice(e, e + i)
        }
    }),
        u.Decryptor = u.extend({
            processBlock: function(t, e) {
                var r = this._cipher
                    , i = r.blockSize
                    , n = t.slice(e, e + i);
                r.decryptBlock(t, e),
                    h.call(this, t, e, i),
                    this._prevBlock = n
            }
        }),
        f = f.CBC = u,
        u = (e.pad = {}).Pkcs7 = {
            pad: function(t, e) {
                for (var r = 4 * e, r = r - t.sigBytes % r, i = r << 24 | r << 16 | r << 8 | r, s = [], o = 0; r > o; o += 4)
                    s.push(i);
                r = n.create(s, r),
                    t.concat(r)
            },
            unpad: function(t) {
                t.sigBytes -= 255 & t.words[t.sigBytes - 1 >>> 2]
            }
        },
        r.BlockCipher = a.extend({
            cfg: a.cfg.extend({
                mode: f,
                padding: u
            }),
            reset: function() {
                a.reset.call(this);
                var t = this.cfg
                    , e = t.iv
                    , t = t.mode;
                if (this._xformMode == this._ENC_XFORM_MODE)
                    var r = t.createEncryptor;
                else
                    r = t.createDecryptor,
                        this._minBufferSize = 1;
                this._mode = r.call(t, this, e && e.words)
            },
            _doProcessBlock: function(t, e) {
                this._mode.processBlock(t, e)
            },
            _doFinalize: function() {
                var t = this.cfg.padding;
                if (this._xformMode == this._ENC_XFORM_MODE) {
                    t.pad(this._data, this.blockSize);
                    var e = this._process(!0)
                } else
                    e = this._process(!0),
                        t.unpad(e);
                return e
            },
            blockSize: 4
        });
    var p = r.CipherParams = i.extend({
        init: function(t) {
            this.mixIn(t)
        },
        toString: function(t) {
            return (t || this.formatter).stringify(this)
        }
    })
        , f = (e.format = {}).OpenSSL = {
        stringify: function(t) {
            var e = t.ciphertext;
            return t = t.salt,
                (t ? n.create([1398893684, 1701076831]).concat(t).concat(e) : e).toString(o)
        },
        parse: function(t) {
            t = o.parse(t);
            var e = t.words;
            if (1398893684 == e[0] && 1701076831 == e[1]) {
                var r = n.create(e.slice(2, 4));
                e.splice(0, 4),
                    t.sigBytes -= 16
            }
            return p.create({
                ciphertext: t,
                salt: r
            })
        }
    }
        , d = r.SerializableCipher = i.extend({
        cfg: i.extend({
            format: f
        }),
        encrypt: function(t, e, r, i) {
            i = this.cfg.extend(i);
            var n = t.createEncryptor(r, i);
            return e = n.finalize(e),
                n = n.cfg,
                p.create({
                    ciphertext: e,
                    key: r,
                    iv: n.iv,
                    algorithm: t,
                    mode: n.mode,
                    padding: n.padding,
                    blockSize: t.blockSize,
                    formatter: i.format
                })
        },
        decrypt: function(t, e, r, i) {
            return i = this.cfg.extend(i),
                e = this._parse(e, i.format),
                t.createDecryptor(r, i).finalize(e.ciphertext)
        },
        _parse: function(t, e) {
            return "string" == typeof t ? e.parse(t, this) : t
        }
    })
        , e = (e.kdf = {}).OpenSSL = {
        execute: function(t, e, r, i) {
            return i || (i = n.random(8)),
                t = c.create({
                    keySize: e + r
                }).compute(t, i),
                r = n.create(t.words.slice(e), 4 * r),
                t.sigBytes = 4 * e,
                p.create({
                    key: t,
                    iv: r,
                    salt: i
                })
        }
    }
        , l = r.PasswordBasedCipher = d.extend({
        cfg: d.cfg.extend({
            kdf: e
        }),
        encrypt: function(t, e, r, i) {
            return i = this.cfg.extend(i),
                r = i.kdf.execute(r, t.keySize, t.ivSize),
                i.iv = r.iv,
                t = d.encrypt.call(this, t, e, r.key, i),
                t.mixIn(r),
                t
        },
        decrypt: function(t, e, r, i) {
            return i = this.cfg.extend(i),
                e = this._parse(e, i.format),
                r = i.kdf.execute(r, t.keySize, t.ivSize, e.salt),
                i.iv = r.iv,
                d.decrypt.call(this, t, e, r.key, i)
        }
    })
}(),
    function() {
        for (var t = CryptoJS, e = t.lib.BlockCipher, r = t.algo, i = [], n = [], s = [], o = [], c = [], a = [], f = [], h = [], u = [], p = [], d = [], l = 0; 256 > l; l++)
            d[l] = 128 > l ? l << 1 : l << 1 ^ 283;
        for (var y = 0, _ = 0, l = 0; 256 > l; l++) {
            var v = _ ^ _ << 1 ^ _ << 2 ^ _ << 3 ^ _ << 4
                , v = v >>> 8 ^ 255 & v ^ 99;
            i[y] = v,
                n[v] = y;
            var g = d[y]
                , B = d[g]
                , m = d[B]
                , x = 257 * d[v] ^ 16843008 * v;
            s[y] = x << 24 | x >>> 8,
                o[y] = x << 16 | x >>> 16,
                c[y] = x << 8 | x >>> 24,
                a[y] = x,
                x = 16843009 * m ^ 65537 * B ^ 257 * g ^ 16843008 * y,
                f[v] = x << 24 | x >>> 8,
                h[v] = x << 16 | x >>> 16,
                u[v] = x << 8 | x >>> 24,
                p[v] = x,
                y ? (y = g ^ d[d[d[m ^ g]]],
                    _ ^= d[d[_]]) : y = _ = 1
        }
        var S = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]
            , r = r.AES = e.extend({
            _doReset: function() {
                for (var t = this._key, e = t.words, r = t.sigBytes / 4, t = 4 * ((this._nRounds = r + 6) + 1), n = this._keySchedule = [], s = 0; t > s; s++)
                    if (r > s)
                        n[s] = e[s];
                    else {
                        var o = n[s - 1];
                        s % r ? r > 6 && 4 == s % r && (o = i[o >>> 24] << 24 | i[o >>> 16 & 255] << 16 | i[o >>> 8 & 255] << 8 | i[255 & o]) : (o = o << 8 | o >>> 24,
                            o = i[o >>> 24] << 24 | i[o >>> 16 & 255] << 16 | i[o >>> 8 & 255] << 8 | i[255 & o],
                            o ^= S[s / r | 0] << 24),
                            n[s] = n[s - r] ^ o
                    }
                for (e = this._invKeySchedule = [],
                         r = 0; t > r; r++)
                    s = t - r,
                        o = r % 4 ? n[s] : n[s - 4],
                        e[r] = 4 > r || 4 >= s ? o : f[i[o >>> 24]] ^ h[i[o >>> 16 & 255]] ^ u[i[o >>> 8 & 255]] ^ p[i[255 & o]]
            },
            encryptBlock: function(t, e) {
                this._doCryptBlock(t, e, this._keySchedule, s, o, c, a, i)
            },
            decryptBlock: function(t, e) {
                var r = t[e + 1];
                t[e + 1] = t[e + 3],
                    t[e + 3] = r,
                    this._doCryptBlock(t, e, this._invKeySchedule, f, h, u, p, n),
                    r = t[e + 1],
                    t[e + 1] = t[e + 3],
                    t[e + 3] = r
            },
            _doCryptBlock: function(t, e, r, i, n, s, o, c) {
                for (var a = this._nRounds, f = t[e] ^ r[0], h = t[e + 1] ^ r[1], u = t[e + 2] ^ r[2], p = t[e + 3] ^ r[3], d = 4, l = 1; a > l; l++)
                     var y = i[f >>> 24] ^ n[h >>> 16 & 255] ^ s[u >>> 8 & 255] ^ o[255 & p] ^ r[d++]
                         , _ = i[h >>> 24] ^ n[u >>> 16 & 255] ^ s[p >>> 8 & 255] ^ o[255 & f] ^ r[d++]
                         , v = i[u >>> 24] ^ n[p >>> 16 & 255] ^ s[f >>> 8 & 255] ^ o[255 & h] ^ r[d++]
                         , p = i[p >>> 24] ^ n[f >>> 16 & 255] ^ s[h >>> 8 & 255] ^ o[255 & u] ^ r[d++]
                         , f = y
                         , h = _
                         , u = v;
                y = (c[f >>> 24] << 24 | c[h >>> 16 & 255] << 16 | c[u >>> 8 & 255] << 8 | c[255 & p]) ^ r[d++],
                    _ = (c[h >>> 24] << 24 | c[u >>> 16 & 255] << 16 | c[p >>> 8 & 255] << 8 | c[255 & f]) ^ r[d++],
                    v = (c[u >>> 24] << 24 | c[p >>> 16 & 255] << 16 | c[f >>> 8 & 255] << 8 | c[255 & h]) ^ r[d++],
                    p = (c[p >>> 24] << 24 | c[f >>> 16 & 255] << 16 | c[h >>> 8 & 255] << 8 | c[255 & u]) ^ r[d++],
                    t[e] = y,
                    t[e + 1] = _,
                    t[e + 2] = v,
                    t[e + 3] = p
            },
            keySize: 8
        });
        t.AES = e._createHelper(r)
    }();

CryptoJS.pad.ZeroPadding = {
    pad: function(s, a) {
        var i = 4 * a;
        s.clamp(),
            s.sigBytes += i - (s.sigBytes % i || i)
    },
    unpad: function(s) {
        for (var a = s.words, i = s.sigBytes - 1; !(a[i >>> 2] >>> 24 - i % 4 * 8 & 255); )
            i--;
        s.sigBytes = i + 1
    }
};



function get_params(pwd){
    var o = CryptoJS.MD5(Math.random() + "").toString();
    password = pwd;
    t = CryptoJS.AES.encrypt(password, o, {
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.ZeroPadding
    });
    password_encode = t.ciphertext.toString(CryptoJS.enc.Base64);
    console.log(password_encode);
    encrypt_iv = t.iv.toString(CryptoJS.enc.Base64);
    encrypt_key = t.key.toString(CryptoJS.enc.Base64);
    console.log(encrypt_iv);
    console.log(encrypt_key);

    return [password_encode,encrypt_iv,encrypt_key];
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章