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

一个简单的JS

[复制链接]

136

主题

416

帖子

446

积分

版主

Rank: 7Rank: 7Rank: 7

积分
446

猫咪币纪念章三好学生活跃会员热心会员突出贡献中秋纪念章国庆纪念章宣传达人推广达人

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

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

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

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

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

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

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

代码:

image.png

JS代码放在一楼了

bilibili:陈公子的话   公众号:陈公子的话

136

主题

416

帖子

446

积分

版主

Rank: 7Rank: 7Rank: 7

积分
446

猫咪币纪念章三好学生活跃会员热心会员突出贡献中秋纪念章国庆纪念章宣传达人推广达人

发表于 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. }
复制代码
bilibili:陈公子的话   公众号:陈公子的话
回复

使用道具 举报

0

主题

26

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2021-7-21 23:42:28 | 显示全部楼层
牛逼,可我不会用,感觉很厉害
回复

使用道具 举报

发表回复

本版积分规则

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