上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

一个简单的JS

[复制链接]
  • TA的每日心情

    前天 22:44
  • 签到天数: 416 天

    [LV.9]以坛为家II

    148

    主题

    423

    回帖

    1133

    积分

    版主

    积分
    1133

    油中2周年生态建设者

    发表于 2021-3-10 09:57:38 | 显示全部楼层 | 阅读模式

    本帖最后由 小陈 于 2021-3-10 09:58 编辑

    前几天在某易语言论坛看到有人求助一个加密问题 就去大概看了下 顺手搞定了

    不过... 让他带价来找我 他没来 直接就发在这里⑧

    当时具体怎么分析的忘记了 大概记得 有三四层 首先是一个MD5的加密 md5加密过后 带着key 进行aes 扣了个aes 外面是一层bs4编码 最后是一个16进制的转换

    没多少难度 想练手的可以去看看 ,

    代码放在这儿,有兴趣的哥哥去玩玩

    代码:

    image.png

    JS代码放在一楼了

    I don't hate programming but the fucking world.
  • TA的每日心情

    前天 22:44
  • 签到天数: 416 天

    [LV.9]以坛为家II

    148

    主题

    423

    回帖

    1133

    积分

    版主

    积分
    1133

    油中2周年生态建设者

    发表于 2021-3-10 09:58:07 | 显示全部楼层
    JS没贴全  放在这



    1. var CryptoJS = CryptoJS ||
    2. function(u, p) {
    3. var d = {},
    4. l = d.lib = {},
    5. s = function() {},
    6. t = l.Base = {
    7.     extend: function(a) {
    8.         s.prototype = this;
    9.         var c = new s;
    10.         return a && c.mixIn(a),
    11.         c.hasOwnProperty("init") || (c.init = function() {
    12.             c.$super.init.apply(this, arguments)
    13.         }),
    14.         c.init.prototype = c,
    15.         c.$super = this,
    16.         c
    17.     },
    18.     create: function() {
    19.         var a = this.extend();
    20.         return a.init.apply(a, arguments),
    21.         a
    22.     },
    23.     init: function() {},
    24.     mixIn: function(a) {
    25.         for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]);
    26.         a.hasOwnProperty("toString") && (this.toString = a.toString)
    27.     },
    28.     clone: function() {
    29.         return this.init.prototype.extend(this)
    30.     }
    31. },
    32. r = l.WordArray = t.extend({
    33.     init: function(a, c) {
    34.         a = this.words = a || [],
    35.         this.sigBytes = void 0 != c ? c: 4 * a.length
    36.     },
    37.     toString: function(a) {
    38.         return (a || v).stringify(this)
    39.     },
    40.     concat: function(a) {
    41.         var c = this.words,
    42.         e = a.words,
    43.         j = this.sigBytes;
    44.         if (a = a.sigBytes, this.clamp(), j % 4) for (var k = 0; k < a; k++) c[j + k >>> 2] |= (e[k >>> 2] >>> 24 - 8 * (k % 4) & 255) << 24 - 8 * ((j + k) % 4);
    45.         else if (65535 < e.length) for (k = 0; k < a; k += 4) c[j + k >>> 2] = e[k >>> 2];
    46.         else c.push.apply(c, e);
    47.         return this.sigBytes += a,
    48.         this
    49.     },
    50.     clamp: function() {
    51.         var a = this.words,
    52.         c = this.sigBytes;
    53.         a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4),
    54.         a.length = u.ceil(c / 4)
    55.     },
    56.     clone: function() {
    57.         var a = t.clone.call(this);
    58.         return a.words = this.words.slice(0),
    59.         a
    60.     },
    61.     random: function(a) {
    62.         for (var c = [], e = 0; e < a; e += 4) c.push(4294967296 * u.random() | 0);
    63.         return new r.init(c, a)
    64.     }
    65. }),
    66. w = d.enc = {},
    67. v = w.Hex = {
    68.     stringify: function(a) {
    69.         var c = a.words;
    70.         a = a.sigBytes;
    71.         for (var e = [], j = 0; j < a; j++) {
    72.             var k = c[j >>> 2] >>> 24 - 8 * (j % 4) & 255;
    73.             e.push((k >>> 4).toString(16)),
    74.             e.push((15 & k).toString(16))
    75.         }
    76.         return e.join("")
    77.     },
    78.     parse: function(a) {
    79.         for (var c = a.length,
    80.         e = [], j = 0; j < c; j += 2) e[j >>> 3] |= parseInt(a.substr(j, 2), 16) << 24 - 4 * (j % 8);
    81.         return new r.init(e, c / 2)
    82.     }
    83. },
    84. b = w.Latin1 = {
    85.     stringify: function(a) {
    86.         var c = a.words;
    87.         a = a.sigBytes;
    88.         for (var e = [], j = 0; j < a; j++) e.push(String.fromCharCode(c[j >>> 2] >>> 24 - 8 * (j % 4) & 255));
    89.         return e.join("")
    90.     },
    91.     parse: function(a) {
    92.         for (var c = a.length,
    93.         e = [], j = 0; j < c; j++) e[j >>> 2] |= (255 & a.charCodeAt(j)) << 24 - 8 * (j % 4);
    94.         return new r.init(e, c)
    95.     }
    96. },
    97. x = w.Utf8 = {
    98.     stringify: function(a) {
    99.         try {
    100.             return decodeURIComponent(escape(b.stringify(a)))
    101.         } catch(c) {
    102.             throw Error("Malformed UTF-8 data")
    103.         }
    104.     },
    105.     parse: function(a) {
    106.         return b.parse(unescape(encodeURIComponent(a)))
    107.     }
    108. },
    109. q = l.BufferedBlockAlgorithm = t.extend({
    110.     reset: function() {
    111.         this._data = new r.init,
    112.         this._nDataBytes = 0
    113.     },
    114.     _append: function(a) {
    115.         "string" == typeof a && (a = x.parse(a)),
    116.         this._data.concat(a),
    117.         this._nDataBytes += a.sigBytes
    118.     },
    119.     _process: function(a) {
    120.         var c = this._data,
    121.         e = c.words,
    122.         j = c.sigBytes,
    123.         k = this.blockSize,
    124.         b = j / (4 * k),
    125.         b = a ? u.ceil(b) : u.max((0 | b) - this._minBufferSize, 0);
    126.         if (a = b * k, j = u.min(4 * a, j), a) {
    127.             for (var q = 0; q < a; q += k) this._doProcessBlock(e, q);
    128.             q = e.splice(0, a),
    129.             c.sigBytes -= j
    130.         }
    131.         return new r.init(q, j)
    132.     },
    133.     clone: function() {
    134.         var a = t.clone.call(this);
    135.         return a._data = this._data.clone(),
    136.         a
    137.     },
    138.     _minBufferSize: 0
    139. });
    140. l.Hasher = q.extend({
    141.     cfg: t.extend(),
    142.     init: function(a) {
    143.         this.cfg = this.cfg.extend(a),
    144.         this.reset()
    145.     },
    146.     reset: function() {
    147.         q.reset.call(this),
    148.         this._doReset()
    149.     },
    150.     update: function(a) {
    151.         return this._append(a),
    152.         this._process(),
    153.         this
    154.     },
    155.     finalize: function(a) {
    156.         return a && this._append(a),
    157.         this._doFinalize()
    158.     },
    159.     blockSize: 16,
    160.     _createHelper: function(a) {
    161.         return function(b, e) {
    162.             return new a.init(e).finalize(b)
    163.         }
    164.     },
    165.     _createHmacHelper: function(a) {
    166.         return function(b, e) {
    167.             return new n.HMAC.init(a, e).finalize(b)
    168.         }
    169.     }
    170. });
    171. var n = d.algo = {};
    172. return d
    173. } (Math); !
    174. function() {
    175. var u = CryptoJS,
    176. p = u.lib.WordArray;
    177. u.enc.Base64 = {
    178.     stringify: function(d) {
    179.         var l = d.words,
    180.         p = d.sigBytes,
    181.         t = this._map;
    182.         d.clamp(),
    183.         d = [];
    184.         for (var r = 0; r < p; r += 3) for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + .75 * v < p; v++) d.push(t.charAt(w >>> 6 * (3 - v) & 63));
    185.         if (l = t.charAt(64)) for (; d.length % 4;) d.push(l);
    186.         return d.join("")
    187.     },
    188.     parse: function(d) {
    189.         var l = d.length,
    190.         s = this._map,
    191.         t = s.charAt(64);
    192.         t && (t = d.indexOf(t), -1 != t && (l = t));
    193.         for (var t = [], r = 0, w = 0; w < l; w++) if (w % 4) {
    194.             var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4),
    195.             b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4);
    196.             t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4),
    197.             r++
    198.         }
    199.         return p.create(t, r)
    200.     },
    201.     _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
    202. }
    203. } (),
    204. function(u) {
    205. function p(b, n, a, c, e, j, k) {
    206.     return b = b + (n & a | ~n & c) + e + k,
    207.     (b << j | b >>> 32 - j) + n
    208. }
    209. function d(b, n, a, c, e, j, k) {
    210.     return b = b + (n & c | a & ~c) + e + k,
    211.     (b << j | b >>> 32 - j) + n
    212. }
    213. function l(b, n, a, c, e, j, k) {
    214.     return b = b + (n ^ a ^ c) + e + k,
    215.     (b << j | b >>> 32 - j) + n
    216. }
    217. function s(b, n, a, c, e, j, k) {
    218.     return b = b + (a ^ (n | ~c)) + e + k,
    219.     (b << j | b >>> 32 - j) + n
    220. }
    221. for (var t = CryptoJS,
    222. r = t.lib,
    223. w = r.WordArray,
    224. v = r.Hasher,
    225. r = t.algo,
    226. b = [], x = 0; 64 > x; x++) b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0;
    227. r = r.MD5 = v.extend({
    228.     _doReset: function() {
    229.         this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878])
    230.     },
    231.     _doProcessBlock: function(q, n) {
    232.         for (var a = 0; 16 > a; a++) {
    233.             var c = n + a,
    234.             e = q[c];
    235.             q[c] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8)
    236.         }
    237.         var a = this._hash.words,
    238.         c = q[n + 0],
    239.         e = q[n + 1],
    240.         j = q[n + 2],
    241.         k = q[n + 3],
    242.         z = q[n + 4],
    243.         r = q[n + 5],
    244.         t = q[n + 6],
    245.         w = q[n + 7],
    246.         v = q[n + 8],
    247.         A = q[n + 9],
    248.         B = q[n + 10],
    249.         C = q[n + 11],
    250.         u = q[n + 12],
    251.         D = q[n + 13],
    252.         E = q[n + 14],
    253.         x = q[n + 15],
    254.         f = a[0],
    255.         m = a[1],
    256.         g = a[2],
    257.         h = a[3],
    258.         f = p(f, m, g, h, c, 7, b[0]),
    259.         h = p(h, f, m, g, e, 12, b[1]),
    260.         g = p(g, h, f, m, j, 17, b[2]),
    261.         m = p(m, g, h, f, k, 22, b[3]),
    262.         f = p(f, m, g, h, z, 7, b[4]),
    263.         h = p(h, f, m, g, r, 12, b[5]),
    264.         g = p(g, h, f, m, t, 17, b[6]),
    265.         m = p(m, g, h, f, w, 22, b[7]),
    266.         f = p(f, m, g, h, v, 7, b[8]),
    267.         h = p(h, f, m, g, A, 12, b[9]),
    268.         g = p(g, h, f, m, B, 17, b[10]),
    269.         m = p(m, g, h, f, C, 22, b[11]),
    270.         f = p(f, m, g, h, u, 7, b[12]),
    271.         h = p(h, f, m, g, D, 12, b[13]),
    272.         g = p(g, h, f, m, E, 17, b[14]),
    273.         m = p(m, g, h, f, x, 22, b[15]),
    274.         f = d(f, m, g, h, e, 5, b[16]),
    275.         h = d(h, f, m, g, t, 9, b[17]),
    276.         g = d(g, h, f, m, C, 14, b[18]),
    277.         m = d(m, g, h, f, c, 20, b[19]),
    278.         f = d(f, m, g, h, r, 5, b[20]),
    279.         h = d(h, f, m, g, B, 9, b[21]),
    280.         g = d(g, h, f, m, x, 14, b[22]),
    281.         m = d(m, g, h, f, z, 20, b[23]),
    282.         f = d(f, m, g, h, A, 5, b[24]),
    283.         h = d(h, f, m, g, E, 9, b[25]),
    284.         g = d(g, h, f, m, k, 14, b[26]),
    285.         m = d(m, g, h, f, v, 20, b[27]),
    286.         f = d(f, m, g, h, D, 5, b[28]),
    287.         h = d(h, f, m, g, j, 9, b[29]),
    288.         g = d(g, h, f, m, w, 14, b[30]),
    289.         m = d(m, g, h, f, u, 20, b[31]),
    290.         f = l(f, m, g, h, r, 4, b[32]),
    291.         h = l(h, f, m, g, v, 11, b[33]),
    292.         g = l(g, h, f, m, C, 16, b[34]),
    293.         m = l(m, g, h, f, E, 23, b[35]),
    294.         f = l(f, m, g, h, e, 4, b[36]),
    295.         h = l(h, f, m, g, z, 11, b[37]),
    296.         g = l(g, h, f, m, w, 16, b[38]),
    297.         m = l(m, g, h, f, B, 23, b[39]),
    298.         f = l(f, m, g, h, D, 4, b[40]),
    299.         h = l(h, f, m, g, c, 11, b[41]),
    300.         g = l(g, h, f, m, k, 16, b[42]),
    301.         m = l(m, g, h, f, t, 23, b[43]),
    302.         f = l(f, m, g, h, A, 4, b[44]),
    303.         h = l(h, f, m, g, u, 11, b[45]),
    304.         g = l(g, h, f, m, x, 16, b[46]),
    305.         m = l(m, g, h, f, j, 23, b[47]),
    306.         f = s(f, m, g, h, c, 6, b[48]),
    307.         h = s(h, f, m, g, w, 10, b[49]),
    308.         g = s(g, h, f, m, E, 15, b[50]),
    309.         m = s(m, g, h, f, r, 21, b[51]),
    310.         f = s(f, m, g, h, u, 6, b[52]),
    311.         h = s(h, f, m, g, k, 10, b[53]),
    312.         g = s(g, h, f, m, B, 15, b[54]),
    313.         m = s(m, g, h, f, e, 21, b[55]),
    314.         f = s(f, m, g, h, v, 6, b[56]),
    315.         h = s(h, f, m, g, x, 10, b[57]),
    316.         g = s(g, h, f, m, t, 15, b[58]),
    317.         m = s(m, g, h, f, D, 21, b[59]),
    318.         f = s(f, m, g, h, z, 6, b[60]),
    319.         h = s(h, f, m, g, C, 10, b[61]),
    320.         g = s(g, h, f, m, j, 15, b[62]),
    321.         m = s(m, g, h, f, A, 21, b[63]);
    322.         a[0] = a[0] + f | 0,
    323.         a[1] = a[1] + m | 0,
    324.         a[2] = a[2] + g | 0,
    325.         a[3] = a[3] + h | 0
    326.     },
    327.     _doFinalize: function() {
    328.         var b = this._data,
    329.         n = b.words,
    330.         a = 8 * this._nDataBytes,
    331.         c = 8 * b.sigBytes;
    332.         n[c >>> 5] |= 128 << 24 - c % 32;
    333.         var e = u.floor(a / 4294967296);
    334.         for (n[(c + 64 >>> 9 << 4) + 15] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), n[(c + 64 >>> 9 << 4) + 14] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), b.sigBytes = 4 * (n.length + 1), this._process(), b = this._hash, n = b.words, a = 0; 4 > a; a++) c = n[a],
    335.         n[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8);
    336.         return b
    337.     },
    338.     clone: function() {
    339.         var b = v.clone.call(this);
    340.         return b._hash = this._hash.clone(),
    341.         b
    342.     }
    343. }),
    344. t.MD5 = v._createHelper(r),
    345. t.HmacMD5 = v._createHmacHelper(r)
    346. } (Math),
    347. function() {
    348. var u = CryptoJS,
    349. p = u.lib,
    350. d = p.Base,
    351. l = p.WordArray,
    352. p = u.algo,
    353. s = p.EvpKDF = d.extend({
    354.     cfg: d.extend({
    355.         keySize: 4,
    356.         hasher: p.MD5,
    357.         iterations: 1
    358.     }),
    359.     init: function(d) {
    360.         this.cfg = this.cfg.extend(d)
    361.     },
    362.     compute: function(d, r) {
    363.         for (var p = this.cfg,
    364.         s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) {
    365.             n && s.update(n);
    366.             var n = s.update(d).finalize(r);
    367.             s.reset();
    368.             for (var a = 1; a < p; a++) n = s.finalize(n),
    369.             s.reset();
    370.             b.concat(n)
    371.         }
    372.         return b.sigBytes = 4 * q,
    373.         b
    374.     }
    375. });
    376. u.EvpKDF = function(d, l, p) {
    377.     return s.create(p).compute(d, l)
    378. }
    379. } (),
    380. CryptoJS.lib.Cipher ||
    381. function(u) {
    382. var p = CryptoJS,
    383. d = p.lib,
    384. l = d.Base,
    385. s = d.WordArray,
    386. t = d.BufferedBlockAlgorithm,
    387. r = p.enc.Base64,
    388. w = p.algo.EvpKDF,
    389. v = d.Cipher = t.extend({
    390.     cfg: l.extend(),
    391.     createEncryptor: function(e, a) {
    392.         return this.create(this._ENC_XFORM_MODE, e, a)
    393.     },
    394.     createDecryptor: function(e, a) {
    395.         return this.create(this._DEC_XFORM_MODE, e, a)
    396.     },
    397.     init: function(e, a, b) {
    398.         this.cfg = this.cfg.extend(b),
    399.         this._xformMode = e,
    400.         this._key = a,
    401.         this.reset()
    402.     },
    403.     reset: function() {
    404.         t.reset.call(this),
    405.         this._doReset()
    406.     },
    407.     process: function(e) {
    408.         return this._append(e),
    409.         this._process()
    410.     },
    411.     finalize: function(e) {
    412.         return e && this._append(e),
    413.         this._doFinalize()
    414.     },
    415.     keySize: 4,
    416.     ivSize: 4,
    417.     _ENC_XFORM_MODE: 1,
    418.     _DEC_XFORM_MODE: 2,
    419.     _createHelper: function(e) {
    420.         return {
    421.             encrypt: function(b, k, d) {
    422.                 return ("string" == typeof k ? c: a).encrypt(e, b, k, d)
    423.             },
    424.             decrypt: function(b, k, d) {
    425.                 return ("string" == typeof k ? c: a).decrypt(e, b, k, d)
    426.             }
    427.         }
    428.     }
    429. });
    430. d.StreamCipher = v.extend({
    431.     _doFinalize: function() {
    432.         return this._process(!0)
    433.     },
    434.     blockSize: 1
    435. });
    436. var b = p.mode = {},
    437. x = function(e, a, b) {
    438.     var c = this._iv;
    439.     c ? this._iv = void 0 : c = this._prevBlock;
    440.     for (var d = 0; d < b; d++) e[a + d] ^= c[d]
    441. },
    442. q = (d.BlockCipherMode = l.extend({
    443.     createEncryptor: function(e, a) {
    444.         return this.Encryptor.create(e, a)
    445.     },
    446.     createDecryptor: function(e, a) {
    447.         return this.Decryptor.create(e, a)
    448.     },
    449.     init: function(e, a) {
    450.         this._cipher = e,
    451.         this._iv = a
    452.     }
    453. })).extend();
    454. q.Encryptor = q.extend({
    455.     processBlock: function(e, a) {
    456.         var b = this._cipher,
    457.         c = b.blockSize;
    458.         x.call(this, e, a, c),
    459.         b.encryptBlock(e, a),
    460.         this._prevBlock = e.slice(a, a + c)
    461.     }
    462. }),
    463. q.Decryptor = q.extend({
    464.     processBlock: function(e, a) {
    465.         var b = this._cipher,
    466.         c = b.blockSize,
    467.         d = e.slice(a, a + c);
    468.         b.decryptBlock(e, a),
    469.         x.call(this, e, a, c),
    470.         this._prevBlock = d
    471.     }
    472. }),
    473. b = b.CBC = q,
    474. q = (p.pad = {}).Pkcs7 = {
    475.     pad: function(a, b) {
    476.         for (var c = 4 * b,
    477.         c = c - a.sigBytes % c,
    478.         d = c << 24 | c << 16 | c << 8 | c,
    479.         l = [], n = 0; n < c; n += 4) l.push(d);
    480.         c = s.create(l, c),
    481.         a.concat(c)
    482.     },
    483.     unpad: function(a) {
    484.         a.sigBytes -= 255 & a.words[a.sigBytes - 1 >>> 2]
    485.     }
    486. },
    487. d.BlockCipher = v.extend({
    488.     cfg: v.cfg.extend({
    489.         mode: b,
    490.         padding: q
    491.     }),
    492.     reset: function() {
    493.         v.reset.call(this);
    494.         var a = this.cfg,
    495.         b = a.iv,
    496.         a = a.mode;
    497.         if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor;
    498.         else c = a.createDecryptor,
    499.         this._minBufferSize = 1;
    500.         this._mode = c.call(a, this, b && b.words)
    501.     },
    502.     _doProcessBlock: function(a, b) {
    503.         this._mode.processBlock(a, b)
    504.     },
    505.     _doFinalize: function() {
    506.         var a = this.cfg.padding;
    507.         if (this._xformMode == this._ENC_XFORM_MODE) {
    508.             a.pad(this._data, this.blockSize);
    509.             var b = this._process(!0)
    510.         } else b = this._process(!0),
    511.         a.unpad(b);
    512.         return b
    513.     },
    514.     blockSize: 4
    515. });
    516. var n = d.CipherParams = l.extend({
    517.     init: function(a) {
    518.         this.mixIn(a)
    519.     },
    520.     toString: function(a) {
    521.         return (a || this.formatter).stringify(this)
    522.     }
    523. }),
    524. b = (p.format = {}).OpenSSL = {
    525.     stringify: function(a) {
    526.         var b = a.ciphertext;
    527.         return a = a.salt,
    528.         (a ? s.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r)
    529.     },
    530.     parse: function(a) {
    531.         a = r.parse(a);
    532.         var b = a.words;
    533.         if (1398893684 == b[0] && 1701076831 == b[1]) {
    534.             var c = s.create(b.slice(2, 4));
    535.             b.splice(0, 4),
    536.             a.sigBytes -= 16
    537.         }
    538.         return n.create({
    539.             ciphertext: a,
    540.             salt: c
    541.         })
    542.     }
    543. },
    544. a = d.SerializableCipher = l.extend({
    545.     cfg: l.extend({
    546.         format: b
    547.     }),
    548.     encrypt: function(a, b, c, d) {
    549.         d = this.cfg.extend(d);
    550.         var l = a.createEncryptor(c, d);
    551.         return b = l.finalize(b),
    552.         l = l.cfg,
    553.         n.create({
    554.             ciphertext: b,
    555.             key: c,
    556.             iv: l.iv,
    557.             algorithm: a,
    558.             mode: l.mode,
    559.             padding: l.padding,
    560.             blockSize: a.blockSize,
    561.             formatter: d.format
    562.         })
    563.     },
    564.     decrypt: function(a, b, c, d) {
    565.         return d = this.cfg.extend(d),
    566.         b = this._parse(b, d.format),
    567.         a.createDecryptor(c, d).finalize(b.ciphertext)
    568.     },
    569.     _parse: function(a, b) {
    570.         return "string" == typeof a ? b.parse(a, this) : a
    571.     }
    572. }),
    573. p = (p.kdf = {}).OpenSSL = {
    574.     execute: function(a, b, c, d) {
    575.         return d || (d = s.random(8)),
    576.         a = w.create({
    577.             keySize: b + c
    578.         }).compute(a, d),
    579.         c = s.create(a.words.slice(b), 4 * c),
    580.         a.sigBytes = 4 * b,
    581.         n.create({
    582.             key: a,
    583.             iv: c,
    584.             salt: d
    585.         })
    586.     }
    587. },
    588. c = d.PasswordBasedCipher = a.extend({
    589.     cfg: a.cfg.extend({
    590.         kdf: p
    591.     }),
    592.     encrypt: function(b, c, d, l) {
    593.         return l = this.cfg.extend(l),
    594.         d = l.kdf.execute(d, b.keySize, b.ivSize),
    595.         l.iv = d.iv,
    596.         b = a.encrypt.call(this, b, c, d.key, l),
    597.         b.mixIn(d),
    598.         b
    599.     },
    600.     decrypt: function(b, c, d, l) {
    601.         return l = this.cfg.extend(l),
    602.         c = this._parse(c, l.format),
    603.         d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt),
    604.         l.iv = d.iv,
    605.         a.decrypt.call(this, b, c, d.key, l)
    606.     }
    607. })
    608. } (),
    609. function() {
    610. for (var u = CryptoJS,
    611. p = u.lib.BlockCipher,
    612. d = u.algo,
    613. l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++) a[c] = 128 > c ? c << 1 : c << 1 ^ 283;
    614. for (var e = 0,
    615. j = 0,
    616. c = 0; 256 > c; c++) {
    617.     var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4,
    618.     k = k >>> 8 ^ 255 & k ^ 99;
    619.     l[e] = k,
    620.     s[k] = e;
    621.     var z = a[e],
    622.     F = a[z],
    623.     G = a[F],
    624.     y = 257 * a[k] ^ 16843008 * k;
    625.     t[e] = y << 24 | y >>> 8,
    626.     r[e] = y << 16 | y >>> 16,
    627.     w[e] = y << 8 | y >>> 24,
    628.     v[e] = y,
    629.     y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e,
    630.     b[k] = y << 24 | y >>> 8,
    631.     x[k] = y << 16 | y >>> 16,
    632.     q[k] = y << 8 | y >>> 24,
    633.     n[k] = y,
    634.     e ? (e = z ^ a[a[a[G ^ z]]], j ^= a[a[j]]) : e = j = 1
    635. }
    636. var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],
    637. d = d.AES = p.extend({
    638.     _doReset: function() {
    639.         for (var a = this._key,
    640.         c = a.words,
    641.         d = a.sigBytes / 4,
    642.         a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++) if (j < d) e[j] = c[j];
    643.         else {
    644.             var k = e[j - 1];
    645.             j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[255 & k]) : (k = k << 8 | k >>> 24, k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[255 & k], k ^= H[j / d | 0] << 24),
    646.             e[j] = e[j - d] ^ k
    647.         }
    648.         for (c = this._invKeySchedule = [], d = 0; d < a; d++) j = a - d,
    649.         k = d % 4 ? e[j] : e[j - 4],
    650.         c[d] = 4 > d || 4 >= j ? k: b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>> 8 & 255]] ^ n[l[255 & k]]
    651.     },
    652.     encryptBlock: function(a, b) {
    653.         this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l)
    654.     },
    655.     decryptBlock: function(a, c) {
    656.         var d = a[c + 1];
    657.         a[c + 1] = a[c + 3],
    658.         a[c + 3] = d,
    659.         this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s),
    660.         d = a[c + 1],
    661.         a[c + 1] = a[c + 3],
    662.         a[c + 3] = d
    663.     },
    664.     _doCryptBlock: function(a, b, c, d, e, j, l, f) {
    665.         for (var m = this._nRounds,
    666.         g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++) var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[255 & n] ^ c[p++],
    667.         s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[255 & g] ^ c[p++],
    668.         t = d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[255 & h] ^ c[p++],
    669.         n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[255 & k] ^ c[p++],
    670.         g = q,
    671.         h = s,
    672.         k = t;
    673.         q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[255 & n]) ^ c[p++],
    674.         s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[255 & g]) ^ c[p++],
    675.         t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[255 & h]) ^ c[p++],
    676.         n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[255 & k]) ^ c[p++],
    677.         a[b] = q,
    678.         a[b + 1] = s,
    679.         a[b + 2] = t,
    680.         a[b + 3] = n
    681.     },
    682.     keySize: 8
    683. });
    684. u.AES = p._createHelper(d)
    685. } ();
    686. var test1 = function(data, secret) {
    687. return CryptoJS.AES.encrypt(data, secret) + ""
    688. }

    689. function getpwd(a, b) {
    690. var a = test1(a, b); return a
    691. }
    复制代码
    I don't hate programming but the fucking world.
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表