上一主题 下一主题
返回列表 发新帖

js01学者网

[复制链接]

62

主题

170

帖子

530

积分

高级会员

Rank: 4

积分
530
发表于 2021-4-12 15:11:38 | 显示全部楼层 | 阅读模式
第一个参数密码 第二个cookies 第三第四固定
  1. `function strEnc(E, u, a, d) {
  2.     var g = E.length;
  3.     var h = "";
  4.     var B, v, s, F, f, l;
  5.     if (u != null && u != "") {
  6.         B = getKeyBytes(u);
  7.         F = B.length
  8.     }
  9.     if (a != null && a != "") {
  10.         v = getKeyBytes(a);
  11.         f = v.length
  12.     }
  13.     if (d != null && d != "") {
  14.         s = getKeyBytes(d);
  15.         l = s.length
  16.     }
  17.     if (g > 0) {
  18.         if (g < 4) {
  19.             var C = strToBt(E);
  20.             var e;
  21.             if (u != null && u != "" && a != null && a != "" && d != null && d != "") {
  22.                 var A;
  23.                 var q, p, o;
  24.                 A = C;
  25.                 for (q = 0; q < F; q++) {
  26.                     A = enc(A, B[q])
  27.                 }
  28.                 for (p = 0; p < f; p++) {
  29.                     A = enc(A, v[p])
  30.                 }
  31.                 for (o = 0; o < l; o++) {
  32.                     A = enc(A, s[o])
  33.                 }
  34.                 e = A
  35.             } else {
  36.                 if (u != null && u != "" && a != null && a != "") {
  37.                     var A;
  38.                     var q, p;
  39.                     A = C;
  40.                     for (q = 0; q < F; q++) {
  41.                         A = enc(A, B[q])
  42.                     }
  43.                     for (p = 0; p < f; p++) {
  44.                         A = enc(A, v[p])
  45.                     }
  46.                     e = A
  47.                 } else {
  48.                     if (u != null && u != "") {
  49.                         var A;
  50.                         var q = 0;
  51.                         A = C;
  52.                         for (q = 0; q < F; q++) {
  53.                             A = enc(A, B[q])
  54.                         }
  55.                         e = A
  56.                     }
  57.                 }
  58.             }
  59.             h = bt64ToHex(e)
  60.         } else {
  61.             var t = parseInt(g / 4);
  62.             var r = g % 4;
  63.             var w = 0;
  64.             for (w = 0; w < t; w++) {
  65.                 var c = E.substring(w * 4 + 0, w * 4 + 4);
  66.                 var D = strToBt(c);
  67.                 var e;
  68.                 if (u != null && u != "" && a != null && a != "" && d != null && d != "") {
  69.                     var A;
  70.                     var q, p, o;
  71.                     A = D;
  72.                     for (q = 0; q < F; q++) {
  73.                         A = enc(A, B[q])
  74.                     }
  75.                     for (p = 0; p < f; p++) {
  76.                         A = enc(A, v[p])
  77.                     }
  78.                     for (o = 0; o < l; o++) {
  79.                         A = enc(A, s[o])
  80.                     }
  81.                     e = A
  82.                 } else {
  83.                     if (u != null && u != "" && a != null && a != "") {
  84.                         var A;
  85.                         var q, p;
  86.                         A = D;
  87.                         for (q = 0; q < F; q++) {
  88.                             A = enc(A, B[q])
  89.                         }
  90.                         for (p = 0; p < f; p++) {
  91.                             A = enc(A, v[p])
  92.                         }
  93.                         e = A
  94.                     } else {
  95.                         if (u != null && u != "") {
  96.                             var A;
  97.                             var q;
  98.                             A = D;
  99.                             for (q = 0; q < F; q++) {
  100.                                 A = enc(A, B[q])
  101.                             }
  102.                             e = A
  103.                         }
  104.                     }
  105.                 }
  106.                 h += bt64ToHex(e)
  107.             }
  108.             if (r > 0) {
  109.                 var b = E.substring(t * 4 + 0, g);
  110.                 var D = strToBt(b);
  111.                 var e;
  112.                 if (u != null && u != "" && a != null && a != "" && d != null && d != "") {
  113.                     var A;
  114.                     var q, p, o;
  115.                     A = D;
  116.                     for (q = 0; q < F; q++) {
  117.                         A = enc(A, B[q])
  118.                     }
  119.                     for (p = 0; p < f; p++) {
  120.                         A = enc(A, v[p])
  121.                     }
  122.                     for (o = 0; o < l; o++) {
  123.                         A = enc(A, s[o])
  124.                     }
  125.                     e = A
  126.                 } else {
  127.                     if (u != null && u != "" && a != null && a != "") {
  128.                         var A;
  129.                         var q, p;
  130.                         A = D;
  131.                         for (q = 0; q < F; q++) {
  132.                             A = enc(A, B[q])
  133.                         }
  134.                         for (p = 0; p < f; p++) {
  135.                             A = enc(A, v[p])
  136.                         }
  137.                         e = A
  138.                     } else {
  139.                         if (u != null && u != "") {
  140.                             var A;
  141.                             var q;
  142.                             A = D;
  143.                             for (q = 0; q < F; q++) {
  144.                                 A = enc(A, B[q])
  145.                             }
  146.                             e = A
  147.                         }
  148.                     }
  149.                 }
  150.                 h += bt64ToHex(e)
  151.             }
  152.         }
  153.     }
  154.     return h
  155. }
  156. function strDec(D, t, a, c) {
  157.     var e = D.length;
  158.     var f = "";
  159.     var B, v, q, E, d, h;
  160.     if (t != null && t != "") {
  161.         B = getKeyBytes(t);
  162.         E = B.length
  163.     }
  164.     if (a != null && a != "") {
  165.         v = getKeyBytes(a);
  166.         d = v.length
  167.     }
  168.     if (c != null && c != "") {
  169.         q = getKeyBytes(c);
  170.         h = q.length
  171.     }
  172.     var s = parseInt(e / 16);
  173.     var A = 0;
  174.     for (A = 0; A < s; A++) {
  175.         var b = D.substring(A * 16 + 0, A * 16 + 16);
  176.         var g = hexToBt64(b);
  177.         var C = new Array(64);
  178.         var u = 0;
  179.         for (u = 0; u < 64; u++) {
  180.             C[u] = parseInt(g.substring(u, u + 1))
  181.         }
  182.         var r;
  183.         if (t != null && t != "" && a != null && a != "" && c != null && c != "") {
  184.             var w;
  185.             var p, o, l;
  186.             w = C;
  187.             for (p = h - 1; p >= 0; p--) {
  188.                 w = dec(w, q[p])
  189.             }
  190.             for (o = d - 1; o >= 0; o--) {
  191.                 w = dec(w, v[o])
  192.             }
  193.             for (l = E - 1; l >= 0; l--) {
  194.                 w = dec(w, B[l])
  195.             }
  196.             r = w
  197.         } else {
  198.             if (t != null && t != "" && a != null && a != "") {
  199.                 var w;
  200.                 var p, o, l;
  201.                 w = C;
  202.                 for (p = d - 1; p >= 0; p--) {
  203.                     w = dec(w, v[p])
  204.                 }
  205.                 for (o = E - 1; o >= 0; o--) {
  206.                     w = dec(w, B[o])
  207.                 }
  208.                 r = w
  209.             } else {
  210.                 if (t != null && t != "") {
  211.                     var w;
  212.                     var p, o, l;
  213.                     w = C;
  214.                     for (p = E - 1; p >= 0; p--) {
  215.                         w = dec(w, B[p])
  216.                     }
  217.                     r = w
  218.                 }
  219.             }
  220.         }
  221.         f += byteToString(r)
  222.     }
  223.     return f
  224. }
  225. function getKeyBytes(d) {
  226.     var a = new Array();
  227.     var c = d.length;
  228.     var e = parseInt(c / 4);
  229.     var f = c % 4;
  230.     var b = 0;
  231.     for (b = 0; b < e; b++) {
  232.         a[b] = strToBt(d.substring(b * 4 + 0, b * 4 + 4))
  233.     }
  234.     if (f > 0) {
  235.         a[b] = strToBt(d.substring(b * 4 + 0, c))
  236.     }
  237.     return a
  238. }
  239. function strToBt(l) {
  240.     var a = l.length;
  241.     var o = new Array(64);
  242.     if (a < 4) {
  243.         var g = 0
  244.           , f = 0
  245.           , c = 0
  246.           , b = 0;
  247.         for (g = 0; g < a; g++) {
  248.             var e = l.charCodeAt(g);
  249.             for (f = 0; f < 16; f++) {
  250.                 var h = 1
  251.                   , d = 0;
  252.                 for (d = 15; d > f; d--) {
  253.                     h *= 2
  254.                 }
  255.                 o[16 * g + f] = parseInt(e / h) % 2
  256.             }
  257.         }
  258.         for (c = a; c < 4; c++) {
  259.             var e = 0;
  260.             for (b = 0; b < 16; b++) {
  261.                 var h = 1
  262.                   , d = 0;
  263.                 for (d = 15; d > b; d--) {
  264.                     h *= 2
  265.                 }
  266.                 o[16 * c + b] = parseInt(e / h) % 2
  267.             }
  268.         }
  269.     } else {
  270.         for (g = 0; g < 4; g++) {
  271.             var e = l.charCodeAt(g);
  272.             for (f = 0; f < 16; f++) {
  273.                 var h = 1;
  274.                 for (d = 15; d > f; d--) {
  275.                     h *= 2
  276.                 }
  277.                 o[16 * g + f] = parseInt(e / h) % 2
  278.             }
  279.         }
  280.     }
  281.     return o
  282. }
  283. function bt4ToHex(b) {
  284.     var a;
  285.     switch (b) {
  286.     case "0000":
  287.         a = "0";
  288.         break;
  289.     case "0001":
  290.         a = "1";
  291.         break;
  292.     case "0010":
  293.         a = "2";
  294.         break;
  295.     case "0011":
  296.         a = "3";
  297.         break;
  298.     case "0100":
  299.         a = "4";
  300.         break;
  301.     case "0101":
  302.         a = "5";
  303.         break;
  304.     case "0110":
  305.         a = "6";
  306.         break;
  307.     case "0111":
  308.         a = "7";
  309.         break;
  310.     case "1000":
  311.         a = "8";
  312.         break;
  313.     case "1001":
  314.         a = "9";
  315.         break;
  316.     case "1010":
  317.         a = "A";
  318.         break;
  319.     case "1011":
  320.         a = "B";
  321.         break;
  322.     case "1100":
  323.         a = "C";
  324.         break;
  325.     case "1101":
  326.         a = "D";
  327.         break;
  328.     case "1110":
  329.         a = "E";
  330.         break;
  331.     case "1111":
  332.         a = "F";
  333.         break
  334.     }
  335.     return a
  336. }
  337. function hexToBt4(a) {
  338.     var b;
  339.     switch (a) {
  340.     case "0":
  341.         b = "0000";
  342.         break;
  343.     case "1":
  344.         b = "0001";
  345.         break;
  346.     case "2":
  347.         b = "0010";
  348.         break;
  349.     case "3":
  350.         b = "0011";
  351.         break;
  352.     case "4":
  353.         b = "0100";
  354.         break;
  355.     case "5":
  356.         b = "0101";
  357.         break;
  358.     case "6":
  359.         b = "0110";
  360.         break;
  361.     case "7":
  362.         b = "0111";
  363.         break;
  364.     case "8":
  365.         b = "1000";
  366.         break;
  367.     case "9":
  368.         b = "1001";
  369.         break;
  370.     case "A":
  371.         b = "1010";
  372.         break;
  373.     case "B":
  374.         b = "1011";
  375.         break;
  376.     case "C":
  377.         b = "1100";
  378.         break;
  379.     case "D":
  380.         b = "1101";
  381.         break;
  382.     case "E":
  383.         b = "1110";
  384.         break;
  385.     case "F":
  386.         b = "1111";
  387.         break
  388.     }
  389.     return b
  390. }
  391. function byteToString(d) {
  392.     var c = "";
  393.     for (i = 0; i < 4; i++) {
  394.         var b = 0;
  395.         for (j = 0; j < 16; j++) {
  396.             var a = 1;
  397.             for (m = 15; m > j; m--) {
  398.                 a *= 2
  399.             }
  400.             b += d[16 * i + j] * a
  401.         }
  402.         if (b != 0) {
  403.             c += String.fromCharCode(b)
  404.         }
  405.     }
  406.     return c
  407. }
  408. function bt64ToHex(c) {
  409.     var b = "";
  410.     for (i = 0; i < 16; i++) {
  411.         var a = "";
  412.         for (j = 0; j < 4; j++) {
  413.             a += c[i * 4 + j]
  414.         }
  415.         b += bt4ToHex(a)
  416.     }
  417.     return b
  418. }
  419. function hexToBt64(a) {
  420.     var b = "";
  421.     for (i = 0; i < 16; i++) {
  422.         b += hexToBt4(a.substring(i, i + 1))
  423.     }
  424.     return b
  425. }
  426. function enc(b, q) {
  427.     var t = generateKeys(q);
  428.     var p = initPermute(b);
  429.     var c = new Array(32);
  430.     var s = new Array(32);
  431.     var g = new Array(32);
  432.     var o = 0
  433.       , l = 0
  434.       , h = 0
  435.       , f = 0
  436.       , e = 0;
  437.     for (h = 0; h < 32; h++) {
  438.         c[h] = p[h];
  439.         s[h] = p[32 + h]
  440.     }
  441.     for (o = 0; o < 16; o++) {
  442.         for (l = 0; l < 32; l++) {
  443.             g[l] = c[l];
  444.             c[l] = s[l]
  445.         }
  446.         var r = new Array(48);
  447.         for (f = 0; f < 48; f++) {
  448.             r[f] = t[o][f]
  449.         }
  450.         var a = xor(pPermute(sBoxPermute(xor(expandPermute(s), r))), g);
  451.         for (e = 0; e < 32; e++) {
  452.             s[e] = a[e]
  453.         }
  454.     }
  455.     var d = new Array(64);
  456.     for (o = 0; o < 32; o++) {
  457.         d[o] = s[o];
  458.         d[32 + o] = c[o]
  459.     }
  460.     return finallyPermute(d)
  461. }
  462. function dec(b, q) {
  463.     var t = generateKeys(q);
  464.     var p = initPermute(b);
  465.     var c = new Array(32);
  466.     var s = new Array(32);
  467.     var g = new Array(32);
  468.     var o = 0
  469.       , l = 0
  470.       , h = 0
  471.       , f = 0
  472.       , e = 0;
  473.     for (h = 0; h < 32; h++) {
  474.         c[h] = p[h];
  475.         s[h] = p[32 + h]
  476.     }
  477.     for (o = 15; o >= 0; o--) {
  478.         for (l = 0; l < 32; l++) {
  479.             g[l] = c[l];
  480.             c[l] = s[l]
  481.         }
  482.         var r = new Array(48);
  483.         for (f = 0; f < 48; f++) {
  484.             r[f] = t[o][f]
  485.         }
  486.         var a = xor(pPermute(sBoxPermute(xor(expandPermute(s), r))), g);
  487.         for (e = 0; e < 32; e++) {
  488.             s[e] = a[e]
  489.         }
  490.     }
  491.     var d = new Array(64);
  492.     for (o = 0; o < 32; o++) {
  493.         d[o] = s[o];
  494.         d[32 + o] = c[o]
  495.     }
  496.     return finallyPermute(d)
  497. }
  498. function initPermute(b) {
  499.     var a = new Array(64);
  500.     for (i = 0,
  501.     m = 1,
  502.     n = 0; i < 4; i++,
  503.     m += 2,
  504.     n += 2) {
  505.         for (j = 7,
  506.         k = 0; j >= 0; j--,
  507.         k++) {
  508.             a[i * 8 + k] = b[j * 8 + m];
  509.             a[i * 8 + k + 32] = b[j * 8 + n]
  510.         }
  511.     }
  512.     return a
  513. }
  514. function expandPermute(a) {
  515.     var b = new Array(48);
  516.     for (i = 0; i < 8; i++) {
  517.         if (i == 0) {
  518.             b[i * 6 + 0] = a[31]
  519.         } else {
  520.             b[i * 6 + 0] = a[i * 4 - 1]
  521.         }
  522.         b[i * 6 + 1] = a[i * 4 + 0];
  523.         b[i * 6 + 2] = a[i * 4 + 1];
  524.         b[i * 6 + 3] = a[i * 4 + 2];
  525.         b[i * 6 + 4] = a[i * 4 + 3];
  526.         if (i == 7) {
  527.             b[i * 6 + 5] = a[0]
  528.         } else {
  529.             b[i * 6 + 5] = a[i * 4 + 4]
  530.         }
  531.     }
  532.     return b
  533. }
  534. function xor(c, b) {
  535.     var a = new Array(c.length);
  536.     for (i = 0; i < c.length; i++) {
  537.         a[i] = c[i] ^ b[i]
  538.     }
  539.     return a
  540. }
  541. function sBoxPermute(c) {
  542.     var a = new Array(32);
  543.     var e = "";
  544.     var r = [[14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7], [0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8], [4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0], [15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13]];
  545.     var q = [[15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10], [3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5], [0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15], [13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9]];
  546.     var p = [[10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8], [13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1], [13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7], [1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12]];
  547.     var o = [[7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15], [13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9], [10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4], [3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14]];
  548.     var l = [[2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9], [14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6], [4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14], [11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3]];
  549.     var h = [[12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11], [10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8], [9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6], [4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13]];
  550.     var g = [[4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1], [13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6], [1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2], [6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12]];
  551.     var f = [[13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7], [1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2], [7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8], [2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11]];
  552.     for (m = 0; m < 8; m++) {
  553.         var d = 0
  554.           , b = 0;
  555.         d = c[m * 6 + 0] * 2 + c[m * 6 + 5];
  556.         b = c[m * 6 + 1] * 2 * 2 * 2 + c[m * 6 + 2] * 2 * 2 + c[m * 6 + 3] * 2 + c[m * 6 + 4];
  557.         switch (m) {
  558.         case 0:
  559.             e = getBoxBinary(r[d][b]);
  560.             break;
  561.         case 1:
  562.             e = getBoxBinary(q[d][b]);
  563.             break;
  564.         case 2:
  565.             e = getBoxBinary(p[d][b]);
  566.             break;
  567.         case 3:
  568.             e = getBoxBinary(o[d][b]);
  569.             break;
  570.         case 4:
  571.             e = getBoxBinary(l[d][b]);
  572.             break;
  573.         case 5:
  574.             e = getBoxBinary(h[d][b]);
  575.             break;
  576.         case 6:
  577.             e = getBoxBinary(g[d][b]);
  578.             break;
  579.         case 7:
  580.             e = getBoxBinary(f[d][b]);
  581.             break
  582.         }
  583.         a[m * 4 + 0] = parseInt(e.substring(0, 1));
  584.         a[m * 4 + 1] = parseInt(e.substring(1, 2));
  585.         a[m * 4 + 2] = parseInt(e.substring(2, 3));
  586.         a[m * 4 + 3] = parseInt(e.substring(3, 4))
  587.     }
  588.     return a
  589. }
  590. function pPermute(b) {
  591.     var a = new Array(32);
  592.     a[0] = b[15];
  593.     a[1] = b[6];
  594.     a[2] = b[19];
  595.     a[3] = b[20];
  596.     a[4] = b[28];
  597.     a[5] = b[11];
  598.     a[6] = b[27];
  599.     a[7] = b[16];
  600.     a[8] = b[0];
  601.     a[9] = b[14];
  602.     a[10] = b[22];
  603.     a[11] = b[25];
  604.     a[12] = b[4];
  605.     a[13] = b[17];
  606.     a[14] = b[30];
  607.     a[15] = b[9];
  608.     a[16] = b[1];
  609.     a[17] = b[7];
  610.     a[18] = b[23];
  611.     a[19] = b[13];
  612.     a[20] = b[31];
  613.     a[21] = b[26];
  614.     a[22] = b[2];
  615.     a[23] = b[8];
  616.     a[24] = b[18];
  617.     a[25] = b[12];
  618.     a[26] = b[29];
  619.     a[27] = b[5];
  620.     a[28] = b[21];
  621.     a[29] = b[10];
  622.     a[30] = b[3];
  623.     a[31] = b[24];
  624.     return a
  625. }
  626. function finallyPermute(a) {
  627.     var b = new Array(64);
  628.     b[0] = a[39];
  629.     b[1] = a[7];
  630.     b[2] = a[47];
  631.     b[3] = a[15];
  632.     b[4] = a[55];
  633.     b[5] = a[23];
  634.     b[6] = a[63];
  635.     b[7] = a[31];
  636.     b[8] = a[38];
  637.     b[9] = a[6];
  638.     b[10] = a[46];
  639.     b[11] = a[14];
  640.     b[12] = a[54];
  641.     b[13] = a[22];
  642.     b[14] = a[62];
  643.     b[15] = a[30];
  644.     b[16] = a[37];
  645.     b[17] = a[5];
  646.     b[18] = a[45];
  647.     b[19] = a[13];
  648.     b[20] = a[53];
  649.     b[21] = a[21];
  650.     b[22] = a[61];
  651.     b[23] = a[29];
  652.     b[24] = a[36];
  653.     b[25] = a[4];
  654.     b[26] = a[44];
  655.     b[27] = a[12];
  656.     b[28] = a[52];
  657.     b[29] = a[20];
  658.     b[30] = a[60];
  659.     b[31] = a[28];
  660.     b[32] = a[35];
  661.     b[33] = a[3];
  662.     b[34] = a[43];
  663.     b[35] = a[11];
  664.     b[36] = a[51];
  665.     b[37] = a[19];
  666.     b[38] = a[59];
  667.     b[39] = a[27];
  668.     b[40] = a[34];
  669.     b[41] = a[2];
  670.     b[42] = a[42];
  671.     b[43] = a[10];
  672.     b[44] = a[50];
  673.     b[45] = a[18];
  674.     b[46] = a[58];
  675.     b[47] = a[26];
  676.     b[48] = a[33];
  677.     b[49] = a[1];
  678.     b[50] = a[41];
  679.     b[51] = a[9];
  680.     b[52] = a[49];
  681.     b[53] = a[17];
  682.     b[54] = a[57];
  683.     b[55] = a[25];
  684.     b[56] = a[32];
  685.     b[57] = a[0];
  686.     b[58] = a[40];
  687.     b[59] = a[8];
  688.     b[60] = a[48];
  689.     b[61] = a[16];
  690.     b[62] = a[56];
  691.     b[63] = a[24];
  692.     return b
  693. }
  694. function getBoxBinary(a) {
  695.     var b = "";
  696.     switch (a) {
  697.     case 0:
  698.         b = "0000";
  699.         break;
  700.     case 1:
  701.         b = "0001";
  702.         break;
  703.     case 2:
  704.         b = "0010";
  705.         break;
  706.     case 3:
  707.         b = "0011";
  708.         break;
  709.     case 4:
  710.         b = "0100";
  711.         break;
  712.     case 5:
  713.         b = "0101";
  714.         break;
  715.     case 6:
  716.         b = "0110";
  717.         break;
  718.     case 7:
  719.         b = "0111";
  720.         break;
  721.     case 8:
  722.         b = "1000";
  723.         break;
  724.     case 9:
  725.         b = "1001";
  726.         break;
  727.     case 10:
  728.         b = "1010";
  729.         break;
  730.     case 11:
  731.         b = "1011";
  732.         break;
  733.     case 12:
  734.         b = "1100";
  735.         break;
  736.     case 13:
  737.         b = "1101";
  738.         break;
  739.     case 14:
  740.         b = "1110";
  741.         break;
  742.     case 15:
  743.         b = "1111";
  744.         break
  745.     }
  746.     return b
  747. }
  748. function generateKeys(c) {
  749.     var e = new Array(56);
  750.     var f = new Array();
  751.     f[0] = new Array();
  752.     f[1] = new Array();
  753.     f[2] = new Array();
  754.     f[3] = new Array();
  755.     f[4] = new Array();
  756.     f[5] = new Array();
  757.     f[6] = new Array();
  758.     f[7] = new Array();
  759.     f[8] = new Array();
  760.     f[9] = new Array();
  761.     f[10] = new Array();
  762.     f[11] = new Array();
  763.     f[12] = new Array();
  764.     f[13] = new Array();
  765.     f[14] = new Array();
  766.     f[15] = new Array();
  767.     var a = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1];
  768.     for (d = 0; d < 7; d++) {
  769.         for (j = 0,
  770.         k = 7; j < 8; j++,
  771.         k--) {
  772.             e[d * 8 + j] = c[8 * k + d]
  773.         }
  774.     }
  775.     var d = 0;
  776.     for (d = 0; d < 16; d++) {
  777.         var h = 0;
  778.         var b = 0;
  779.         for (j = 0; j < a[d]; j++) {
  780.             h = e[0];
  781.             b = e[28];
  782.             for (k = 0; k < 27; k++) {
  783.                 e[k] = e[k + 1];
  784.                 e[28 + k] = e[29 + k]
  785.             }
  786.             e[27] = h;
  787.             e[55] = b
  788.         }
  789.         var g = new Array(48);
  790.         g[0] = e[13];
  791.         g[1] = e[16];
  792.         g[2] = e[10];
  793.         g[3] = e[23];
  794.         g[4] = e[0];
  795.         g[5] = e[4];
  796.         g[6] = e[2];
  797.         g[7] = e[27];
  798.         g[8] = e[14];
  799.         g[9] = e[5];
  800.         g[10] = e[20];
  801.         g[11] = e[9];
  802.         g[12] = e[22];
  803.         g[13] = e[18];
  804.         g[14] = e[11];
  805.         g[15] = e[3];
  806.         g[16] = e[25];
  807.         g[17] = e[7];
  808.         g[18] = e[15];
  809.         g[19] = e[6];
  810.         g[20] = e[26];
  811.         g[21] = e[19];
  812.         g[22] = e[12];
  813.         g[23] = e[1];
  814.         g[24] = e[40];
  815.         g[25] = e[51];
  816.         g[26] = e[30];
  817.         g[27] = e[36];
  818.         g[28] = e[46];
  819.         g[29] = e[54];
  820.         g[30] = e[29];
  821.         g[31] = e[39];
  822.         g[32] = e[50];
  823.         g[33] = e[44];
  824.         g[34] = e[32];
  825.         g[35] = e[47];
  826.         g[36] = e[43];
  827.         g[37] = e[48];
  828.         g[38] = e[38];
  829.         g[39] = e[55];
  830.         g[40] = e[33];
  831.         g[41] = e[52];
  832.         g[42] = e[45];
  833.         g[43] = e[41];
  834.         g[44] = e[49];
  835.         g[45] = e[35];
  836.         g[46] = e[28];
  837.         g[47] = e[31];
  838.         switch (d) {
  839.         case 0:
  840.             for (m = 0; m < 48; m++) {
  841.                 f[0][m] = g[m]
  842.             }
  843.             break;
  844.         case 1:
  845.             for (m = 0; m < 48; m++) {
  846.                 f[1][m] = g[m]
  847.             }
  848.             break;
  849.         case 2:
  850.             for (m = 0; m < 48; m++) {
  851.                 f[2][m] = g[m]
  852.             }
  853.             break;
  854.         case 3:
  855.             for (m = 0; m < 48; m++) {
  856.                 f[3][m] = g[m]
  857.             }
  858.             break;
  859.         case 4:
  860.             for (m = 0; m < 48; m++) {
  861.                 f[4][m] = g[m]
  862.             }
  863.             break;
  864.         case 5:
  865.             for (m = 0; m < 48; m++) {
  866.                 f[5][m] = g[m]
  867.             }
  868.             break;
  869.         case 6:
  870.             for (m = 0; m < 48; m++) {
  871.                 f[6][m] = g[m]
  872.             }
  873.             break;
  874.         case 7:
  875.             for (m = 0; m < 48; m++) {
  876.                 f[7][m] = g[m]
  877.             }
  878.             break;
  879.         case 8:
  880.             for (m = 0; m < 48; m++) {
  881.                 f[8][m] = g[m]
  882.             }
  883.             break;
  884.         case 9:
  885.             for (m = 0; m < 48; m++) {
  886.                 f[9][m] = g[m]
  887.             }
  888.             break;
  889.         case 10:
  890.             for (m = 0; m < 48; m++) {
  891.                 f[10][m] = g[m]
  892.             }
  893.             break;
  894.         case 11:
  895.             for (m = 0; m < 48; m++) {
  896.                 f[11][m] = g[m]
  897.             }
  898.             break;
  899.         case 12:
  900.             for (m = 0; m < 48; m++) {
  901.                 f[12][m] = g[m]
  902.             }
  903.             break;
  904.         case 13:
  905.             for (m = 0; m < 48; m++) {
  906.                 f[13][m] = g[m]
  907.             }
  908.             break;
  909.         case 14:
  910.             for (m = 0; m < 48; m++) {
  911.                 f[14][m] = g[m]
  912.             }
  913.             break;
  914.         case 15:
  915.             for (m = 0; m < 48; m++) {
  916.                 f[15][m] = g[m]
  917.             }
  918.             break
  919.         }
  920.     }
  921.     return f
  922. }
  923. ;`

复制代码


回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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