Modification d'un générateur illimité de mots ?

Modification d'un générateur illimité de mots ? - HTML/CSS - Programmation

Marsh Posté le 19-04-2011 à 19:13:22    

Bonjour, je fait appelle a vous au sujet d'un petit probléme, mais que je suis incapable de resoudre.
J'ai trouvé ce scripte de génération de mot tout simplement genial, parfait, SAUF QUE ... mais non, attendez, vous devez vous en servir d'abord  
 
http://www.minelinks.com/supercode [...] yeux_.html
 
Et voila le code simplifié
 
 

Code :
  1. <script language="JavaScript">
  2. <!--
  3.     loadTime = (new Date()).getTime();
  4. /*
  5.  
  6.     L'Ecuyer's two-sequence generator with a Bays-Durham shuffle
  7.     on the back-end.  Schrage's algorithm is used to perform
  8.     64-bit modular arithmetic within the 32-bit constraints of
  9.     JavaScript.
  10.  
  11.     Bays, C. and S. D. Durham.  ACM Trans. Math. Software: 2 (1976)
  12.         59-64.
  13.  
  14.     L'Ecuyer, P.  Communications of the ACM: 31 (1968) 742-774.
  15.  
  16.     Schrage, L.  ACM Trans. Math. Software: 5 (1979) 132-138.
  17.  
  18. */
  19. function uGen(old, a, q, r, m) {      // Schrage's modular multiplication algorithm
  20.     var t;
  21.     t = Math.floor(old / q);
  22.     t = a * (old - (t * q)) - (t * r);
  23.     return Math.round((t < 0) ? (t + m) : t);
  24. }
  25. function LEnext() {                   // Return next raw value
  26.     var i;
  27.     this.gen1 = uGen(this.gen1, 40014, 53668, 12211, 2147483563);
  28.     this.gen2 = uGen(this.gen2, 40692, 52774, 3791, 2147483399);
  29.     /* Extract shuffle table index from most significant part
  30.        of the previous result. */
  31.     i = Math.floor(this.state / 67108862);
  32.     // New state is sum of generators modulo one of their moduli
  33.     this.state = Math.round((this.shuffle[i] + this.gen2) % 2147483563);
  34.     // Replace value in shuffle table with generator 1 result
  35.     this.shuffle[i] = this.gen1;
  36.     return this.state;
  37. }
  38. //  Return next random integer between 0 and n inclusive
  39. function LEnint(n) {
  40.     return Math.floor(this.next() / (1 + 2147483562 / (n + 1)));
  41. }
  42. //  Constructor.  Called with seed value
  43. function LEcuyer(s) {
  44.     var i;
  45.     this.shuffle = new Array(32);
  46.     this.gen1 = this.gen2 = (s & 0x7FFFFFFF);
  47.     for (i = 0; i < 19; i++) {
  48.         this.gen1 = uGen(this.gen1, 40014, 53668, 12211, 2147483563);
  49.     }
  50.     // Fill the shuffle table with values
  51.     for (i = 0; i < 32; i++) {
  52.         this.gen1 = uGen(this.gen1, 40014, 53668, 12211, 2147483563);
  53.         this.shuffle[31 - i] = this.gen1;
  54.     }
  55.     this.state = this.shuffle[0];
  56.     this.next = LEnext;
  57.     this.nextInt = LEnint;
  58. }
  59. function sepchar() {
  60.     if (rsep) {
  61.         var seps = "!#$%&()*+,-./:;<=>?@[]^_{|}~";
  62.         return seps.charAt(sepran.nextInt(seps.length - 1));
  63.     }
  64.     return "-";
  65. }
  66. /*
  67. *  md5.jvs 1.0b 27/06/96
  68. *
  69. * Javascript implementation of the RSA Data Security, Inc. MD5
  70. * Message-Digest Algorithm.
  71. *
  72. * Copyright (c) 1996 Henri Torgemane. All Rights Reserved.
  73. *
  74. * Permission to use, copy, modify, and distribute this software
  75. * and its documentation for any purposes and without
  76. * fee is hereby granted provided that this copyright notice
  77. * appears in all copies.  
  78. *
  79. * Of course, this soft is provided "as is" without express or implied
  80. * warranty of any kind.
  81.  
  82.     This version contains some trivial reformatting modifications
  83.     by John Walker and Rafal Swiecki.
  84.  
  85. */
  86. function array(n) {
  87.     for (i = 0; i < n; i++) {
  88.         this[i] = 0;
  89.     }
  90.     this.length = n;
  91. }
  92. /* Some basic logical functions had to be rewritten because of a bug in
  93. * Javascript.. Just try to compute 0xffffffff >> 4 with it..
  94. * Of course, these functions are slower than the original would be, but
  95. * at least, they work!
  96. */
  97. function integer(n) {
  98.     return n % (0xffffffff + 1);
  99. }
  100. function shr(a, b) {
  101.     a = integer(a);
  102.     b = integer(b);
  103.     if (a - 0x80000000 >= 0) {
  104.         a = a % 0x80000000;
  105.         a >>= b;
  106.         a += 0x40000000 >> (b - 1);
  107.     } else {
  108.         a >>= b;
  109.     }
  110.     return a;
  111. }
  112. function shl1(a) {
  113.     a = a % 0x80000000;
  114.     if (a & 0x40000000 == 0x40000000) {
  115.         a -= 0x40000000; 
  116.         a *= 2;
  117.         a += 0x80000000;
  118.     } else {
  119.         a *= 2;
  120.     }
  121.     return a;
  122. }
  123. function shl(a, b) {
  124.     a = integer(a);
  125.     b = integer(b);
  126.     for (var i = 0; i < b; i++) {
  127.         a = shl1(a);
  128.     }
  129.     return a;
  130. }
  131. function and(a, b) {
  132.     a = integer(a);
  133.     b = integer(b);
  134.     var t1 = a - 0x80000000;
  135.     var t2 = b - 0x80000000;
  136.     if (t1 >= 0) {
  137.         if (t2 >= 0) {
  138.             return ((t1 & t2) + 0x80000000);
  139.         } else {
  140.             return (t1 & b);
  141.         }
  142.     } else {
  143.         if (t2 >= 0) {
  144.             return (a & t2);
  145.         } else {
  146.             return (a & b); 
  147.         }
  148.     }
  149. }
  150. function or(a, b) {
  151.     a = integer(a);
  152.     b = integer(b);
  153.     var t1 = a - 0x80000000;
  154.     var t2 = b - 0x80000000;
  155.     if (t1 >= 0) {
  156.         if (t2 >= 0) {
  157.             return ((t1 | t2) + 0x80000000);
  158.         } else {
  159.             return ((t1 | b) + 0x80000000);
  160.         }
  161.     } else {
  162.         if (t2 >= 0) {
  163.             return ((a | t2) + 0x80000000);
  164.         } else {
  165.             return (a | b); 
  166.         }
  167.     }
  168. }
  169. function xor(a, b) {
  170.     a = integer(a);
  171.     b = integer(b);
  172.     var t1 = a - 0x80000000;
  173.     var t2 = b - 0x80000000;
  174.     if (t1 >= 0) {
  175.         if (t2 >= 0) {
  176.             return (t1 ^ t2);
  177.         } else {
  178.             return ((t1 ^ b) + 0x80000000);
  179.         }
  180.     } else {
  181.         if (t2 >= 0) {
  182.             return ((a ^ t2) + 0x80000000);
  183.         } else {
  184.             return (a ^ b); 
  185.         }
  186.     }
  187. }
  188. function not(a) {
  189.     a = integer(a);
  190.     return 0xffffffff - a;
  191. }
  192. /* Here begin the real algorithm */
  193. var state = new array(4);
  194. var count = new array(2);
  195.     count[0] = 0;
  196.     count[1] = 0;             
  197. var buffer = new array(64);
  198. var transformBuffer = new array(16);
  199. var digestBits = new array(16);
  200. var S11 = 7;
  201. var S12 = 12;
  202. var S13 = 17;
  203. var S14 = 22;
  204. var S21 = 5;
  205. var S22 = 9;
  206. var S23 = 14;
  207. var S24 = 20;
  208. var S31 = 4;
  209. var S32 = 11;
  210. var S33 = 16;
  211. var S34 = 23;
  212. var S41 = 6;
  213. var S42 = 10;
  214. var S43 = 15;
  215. var S44 = 21;
  216. function F(x, y, z) {
  217.     return or(and(x, y), and(not(x), z));
  218. }
  219. function G(x, y, z) {
  220.     return or(and(x, z), and(y, not(z)));
  221. }
  222. function H(x, y, z) {
  223.     return xor(xor(x, y), z);
  224. }
  225. function I(x, y, z) {
  226.     return xor(y ,or(x , not(z)));
  227. }
  228. function rotateLeft(a, n) {
  229.     return or(shl(a, n), (shr(a, (32 - n))));
  230. }
  231. function FF(a, b, c, d, x, s, ac) {
  232.     a = a + F(b, c, d) + x + ac;
  233.     a = rotateLeft(a, s);
  234.     a = a + b;
  235.     return a;
  236. }
  237. function GG(a, b, c, d, x, s, ac) {
  238.     a = a + G(b, c, d) + x + ac;
  239.     a = rotateLeft(a, s);
  240.     a = a + b;
  241.     return a;
  242. }
  243. function HH(a, b, c, d, x, s, ac) {
  244.     a = a + H(b, c, d) + x + ac;
  245.     a = rotateLeft(a, s);
  246.     a = a + b;
  247.     return a;
  248. }
  249. function II(a, b, c, d, x, s, ac) {
  250.     a = a + I(b, c, d) + x + ac;
  251.     a = rotateLeft(a, s);
  252.     a = a + b;
  253.     return a;
  254. }
  255. function transform(buf, offset) {
  256.     var a = 0, b = 0, c = 0, d = 0;
  257.     var x = transformBuffer;
  258.    
  259.     a = state[0];
  260.     b = state[1];
  261.     c = state[2];
  262.     d = state[3];
  263.    
  264.     for (i = 0; i < 16; i++) {
  265.         x[i] = and(buf[i * 4 + offset], 0xFF);
  266.         for (j = 1; j < 4; j++) {
  267.             x[i] += shl(and(buf[i * 4 + j + offset] ,0xFF), j * 8);
  268.         }
  269.     }
  270.     /* Round 1 */
  271.     a = FF( a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
  272.     d = FF( d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
  273.     c = FF( c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
  274.     b = FF( b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
  275.     a = FF( a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
  276.     d = FF( d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
  277.     c = FF( c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
  278.     b = FF( b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
  279.     a = FF( a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
  280.     d = FF( d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
  281.     c = FF( c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
  282.     b = FF( b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
  283.     a = FF( a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
  284.     d = FF( d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
  285.     c = FF( c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
  286.     b = FF( b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
  287.     /* Round 2 */
  288.     a = GG( a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
  289.     d = GG( d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
  290.     c = GG( c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
  291.     b = GG( b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
  292.     a = GG( a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
  293.     d = GG( d, a, b, c, x[10], S22,  0x2441453); /* 22 */
  294.     c = GG( c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
  295.     b = GG( b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
  296.     a = GG( a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
  297.     d = GG( d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
  298.     c = GG( c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
  299.     b = GG( b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
  300.     a = GG( a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
  301.     d = GG( d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
  302.     c = GG( c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
  303.     b = GG( b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
  304.     /* Round 3 */
  305.     a = HH( a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
  306.     d = HH( d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
  307.     c = HH( c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
  308.     b = HH( b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
  309.     a = HH( a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
  310.     d = HH( d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
  311.     c = HH( c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
  312.     b = HH( b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
  313.     a = HH( a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
  314.     d = HH( d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
  315.     c = HH( c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
  316.     b = HH( b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
  317.     a = HH( a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
  318.     d = HH( d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
  319.     c = HH( c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
  320.     b = HH( b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
  321.     /* Round 4 */
  322.     a = II( a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
  323.     d = II( d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
  324.     c = II( c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
  325.     b = II( b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
  326.     a = II( a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
  327.     d = II( d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
  328.     c = II( c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
  329.     b = II( b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
  330.     a = II( a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
  331.     d = II( d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
  332.     c = II( c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
  333.     b = II( b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
  334.     a = II( a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
  335.     d = II( d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
  336.     c = II( c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
  337.     b = II( b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
  338.     state[0] += a;
  339.     state[1] += b;
  340.     state[2] += c;
  341.     state[3] += d;
  342. }
  343. function init() {
  344.     count[0] = count[1] = 0;
  345.     state[0] = 0x67452301;
  346.     state[1] = 0xefcdab89;
  347.     state[2] = 0x98badcfe;
  348.     state[3] = 0x10325476;
  349.     for (i = 0; i < digestBits.length; i++) {
  350.         digestBits[i] = 0;
  351.     }
  352. }
  353. function update(b) {
  354.     var index, i;
  355.    
  356.     index = and(shr(count[0],3) , 0x3F);
  357.     if (count[0] < 0xFFFFFFFF - 7) {
  358.       count[0] += 8;
  359.     } else {
  360.       count[1]++;
  361.       count[0] -= 0xFFFFFFFF + 1;
  362.       count[0] += 8;
  363.     }
  364.     buffer[index] = and(b, 0xff);
  365.     if (index  >= 63) {
  366.         transform(buffer, 0);
  367.     }
  368. }
  369. function finish() {
  370.     var bits = new array(8);
  371.     var padding;
  372.     var i = 0, index = 0, padLen = 0;
  373.     for (i = 0; i < 4; i++) {
  374.         bits[i] = and(shr(count[0], (i * 8)), 0xFF);
  375.     }
  376.     for (i = 0; i < 4; i++) {
  377.         bits[i + 4] = and(shr(count[1], (i * 8)), 0xFF);
  378.     }
  379.     index = and(shr(count[0], 3), 0x3F);
  380.     padLen = (index < 56) ? (56 - index) : (120 - index);
  381.     padding = new array(64);
  382.     padding[0] = 0x80;
  383.     for (i = 0; i < padLen; i++) {
  384.       update(padding[i]);
  385.     }
  386.     for (i = 0; i < 8; i++) {
  387.       update(bits[i]);
  388.     }
  389.     for (i = 0; i < 4; i++) {
  390.         for (j = 0; j < 4; j++) {
  391.             digestBits[i * 4 + j] = and(shr(state[i], (j * 8)) , 0xFF);
  392.         }
  393.     }
  394. }
  395. /* End of the MD5 algorithm */
  396. function gen() {
  397.     window.status = "Generating...";
  398.     document.onetime.pad.value = "";
  399.     upper = document.onetime.upper.checked;
  400.     rsep = document.onetime.rsep.checked;
  401.     if (!(numeric = document.onetime.keytype[0].checked)) {
  402.         english = document.onetime.keytype[1].checked;
  403.         gibberish = document.onetime.keytype[3].checked;
  404.     }
  405.     clockseed = document.onetime.seedy[0].checked
  406.     makesig = document.onetime.dosig.checked;
  407.     npass = document.onetime.nkeys.value;
  408.     pw_length = Math.round(document.onetime.klength.value);
  409.     sep = document.onetime.sep.value;
  410.     linelen = document.onetime.linelen.value;
  411. //               01234567890123456789012345678901
  412.     charcodes = " " +
  413.                 "!\"#$%&'()*+,-./0123456789:;<=>?" +
  414.                 "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_" +
  415.                 "`abcdefghijklmnopqrstuvwxyz{|}~";
  416.     if (clockseed) {
  417.         var n, j, ran0;
  418.         /*  Obtain seed from the clock.  To reduce the likelihood
  419.             of the seed being guessed, we create the seed by combining
  420.             the time of the request with the time the page was loaded,
  421.             then use that composite value to seed an auxiliary generator
  422.             which is cycled between one and 32 times based on the time
  423.             derived initial seed, with the output of the generator fed
  424.             back into the seed we use to generate the pad.  */
  425.         seed = Math.round((new Date()).getTime() % Math.pow(2, 31));
  426.         ran0 = new LEcuyer((seed ^ Math.round(loadTime % Math.pow(2, 31))) & 0x7FFFFFFF);
  427.         for (j = 0; j < (5 + ((seed >> 3) & 0xF)); j++) {
  428.             n = ran0.nextInt(31);
  429.         }
  430.         while (n-- >= 0) {
  431.             seed = ((seed << 11) | (seed >>> (32 - 11))) ^ ran0.next();
  432.         }
  433.         seed &= 0x7FFFFFFF;
  434.         document.onetime.seeder.value = seed;
  435.     } else {
  436.         var useed, seedNum;
  437.         /* Obtain seed from user specification.  If the seed is a
  438.            decimal number, use it as-is.  If it contains any
  439.            non-numeric characters, construct a hash code and
  440.            use that as the seed. */
  441.         useed = document.onetime.seeder.value;
  442.         seedNum = true;
  443.         for (i = 0; i < useed.length; i++) {
  444.             if ("0123456789".indexOf(useed.charAt(i)) == -1) {
  445.                 seedNum = false;
  446.                 break;
  447.             }
  448.         }
  449.         if (seedNum) {
  450.             seed = Math.round(Math.floor(document.onetime.seeder.value) % Math.pow(2, 31));
  451.             document.onetime.seeder.value = seed;
  452.         } else {
  453.             var s, t, iso, hex;
  454.             iso = "";
  455.             hex = "0123456789ABCDEF";
  456.             for (i = 32; i < 256; i++) {
  457.                 if (i < 127 || i >= 160) {
  458.                     // Why not "s = i.toString(16);"?  Doesn't work in Netscape 3.0
  459.                     iso += "%" + hex.charAt(i >> 4) + hex.charAt(i & 0xF);
  460.                 }
  461.             }
  462.             iso = unescape(iso);
  463.             s = 0;
  464.             for (i = 0; i < useed.length; i++) {
  465.                 t = iso.indexOf(useed.charAt(i));
  466.                 if (t < 0) {
  467.                     t = 17;
  468.                 }
  469.                 s = 0x7FFFFFFF & (((s << 5) | (s >> (32 - 5))) ^ t);
  470.             }
  471.             seed = s;
  472.         }
  473.     }
  474.     ran1 = new LEcuyer(seed);
  475.     if (rsep) {
  476.         /*  Use a separate random generator for separators
  477.             so that results are the same for a given seed
  478.             for both choices of separators.  */
  479.         sepran = new LEcuyer(seed);
  480.     }
  481.     ndig = 1;
  482.     j = 10;
  483.     while (npass >= j) {
  484.         ndig++;
  485.         j *= 10;
  486.     }
  487.     pw_item = pw_length + (sep > 0 ? (pw_length / sep) : 0);
  488.     pw_item += ndig + 5;
  489.     j = pw_item * 3;
  490.     if (j < 132) {
  491.         j = 132;
  492.     }
  493.     npline = Math.floor(linelen / pw_item);
  494.     if (npline < 1) {
  495.         npline = 0;
  496.     }
  497.     v = "";
  498.     md5v = "";
  499.     lineno = 0;
  500.     if (!numeric) {
  501.         letters = "abcdefghijklmnopqrstuvwxyz";
  502.         if (upper) {
  503.             letters = letters.toUpperCase();
  504.         }
  505.         if (english) {
  506.             // Frequency of English digraphs (from D. Edwards 1/27/66)
  507.             frequency = new Array(
  508.                 new Array(4, 20, 28, 52, 2, 11, 28, 4, 32, 4, 6, 62,
  509.                           23, 167, 2, 14, 0, 83, 76, 127, 7, 25, 8, 1,
  510.                           9, 1), /* aa - az */
  511.                 new Array(13, 0, 0, 0, 55, 0, 0, 0, 8, 2, 0, 22, 0, 0,
  512.                           11, 0, 0, 15, 4, 2, 13, 0, 0, 0, 15, 0), /* ba - bz */
  513.                 new Array(32, 0, 7, 1, 69, 0, 0, 33, 17, 0, 10, 9, 1,
  514.                           0, 50, 3, 0, 10, 0, 28, 11, 0, 0, 0, 3, 0), /* ca - cz */
  515.                 new Array(40, 16, 9, 5, 65, 18, 3, 9, 56, 0, 1, 4, 15,
  516.                           6, 16, 4, 0, 21, 18, 53, 19, 5, 15, 0, 3, 0), /* da - dz */
  517.                 new Array(84, 20, 55, 125, 51, 40, 19, 16, 50, 1, 4,
  518.                           55, 54, 146, 35, 37, 6, 191, 149, 65, 9, 26,
  519.                           21, 12, 5, 0), /* ea - ez */
  520.                 new Array(19, 3, 5, 1, 19, 21, 1, 3, 30, 2, 0, 11, 1,
  521.                           0, 51, 0, 0, 26, 8, 47, 6, 3, 3, 0, 2, 0), /* fa - fz */
  522.                 new Array(20, 4, 3, 2, 35, 1, 3, 15, 18, 0, 0, 5, 1,
  523.                           4, 21, 1, 1, 20, 9, 21, 9, 0, 5, 0, 1, 0), /* ga - gz */
  524.                 new Array(101, 1, 3, 0, 270, 5, 1, 6, 57, 0, 0, 0, 3,
  525.                           2, 44, 1, 0, 3, 10, 18, 6, 0, 5, 0, 3, 0), /* ha - hz */
  526.                 new Array(40, 7, 51, 23, 25, 9, 11, 3, 0, 0, 2, 38,
  527.                           25, 202, 56, 12, 1, 46, 79, 117, 1, 22, 0,
  528.                           4, 0, 3), /* ia - iz */
  529.                 new Array(3, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 4,
  530.                           0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0), /* ja - jz */
  531.                 new Array(1, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 0, 2,
  532.                           0, 0, 0, 0, 6, 2, 1, 0, 2, 0, 1, 0), /* ka - kz */
  533.                 new Array(44, 2, 5, 12, 62, 7, 5, 2, 42, 1, 1, 53, 2,
  534.                           2, 25, 1, 1, 2, 16, 23, 9, 0, 1, 0, 33, 0), /* la - lz */
  535.                 new Array(52, 14, 1, 0, 64, 0, 0, 3, 37, 0, 0, 0, 7,
  536.                           1, 17, 18, 1, 2, 12, 3, 8, 0, 1, 0, 2, 0), /* ma - mz */
  537.                 new Array(42, 10, 47, 122, 63, 19, 106, 12, 30, 1, 6,
  538.                           6, 9, 7, 54, 7, 1, 7, 44, 124, 6, 1, 15, 0,
  539.                           12, 0), /* na - nz */
  540.                 new Array(7, 12, 14, 17, 5, 95, 3, 5, 14, 0, 0, 19,
  541.                           41, 134, 13, 23, 0, 91, 23, 42, 55, 16, 28,
  542.                           0, 4, 1), /* oa - oz */
  543.                 new Array(19, 1, 0, 0, 37, 0, 0, 4, 8, 0, 0, 15, 1, 0,
  544.                           27, 9, 0, 33, 14, 7, 6, 0, 0, 0, 0, 0), /* pa - pz */
  545.                 new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  546.                           0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0), /* qa - qz */
  547.                 new Array(83, 8, 16, 23, 169, 4, 8, 8, 77, 1, 10, 5,
  548.                           26, 16, 60, 4, 0, 24, 37, 55, 6, 11, 4, 0,
  549.                           28, 0), /* ra - rz */
  550.                 new Array(65, 9, 17, 9, 73, 13, 1, 47, 75, 3, 0, 7,
  551.                           11, 12, 56, 17, 6, 9, 48, 116, 35, 1, 28, 0,
  552.                           4, 0), /* sa - sz */
  553.                 new Array(57, 22, 3, 1, 76, 5, 2, 330, 126, 1, 0, 14,
  554.                           10, 6, 79, 7, 0, 49, 50, 56, 21, 2, 27, 0,
  555.                           24, 0), /* ta - tz */
  556.                 new Array(11, 5, 9, 6, 9, 1, 6, 0, 9, 0, 1, 19, 5, 31,
  557.                           1, 15, 0, 47, 39, 31, 0, 3, 0, 0, 0, 0), /* ua - uz */
  558.                 new Array(7, 0, 0, 0, 72, 0, 0, 0, 28, 0, 0, 0, 0, 0,
  559.                           5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0), /* va - vz */
  560.                 new Array(36, 1, 1, 0, 38, 0, 0, 33, 36, 0, 0, 4, 1,
  561.                           8, 15, 0, 0, 0, 4, 2, 0, 0, 1, 0, 0, 0), /* wa - wz */
  562.                 new Array(1, 0, 2, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 1,
  563.                           5, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0), /* xa - xz */
  564.                 new Array(14, 5, 4, 2, 7, 12, 12, 6, 10, 0, 0, 3, 7,
  565.                           5, 17, 3, 0, 4, 16, 30, 0, 0, 5, 0, 0, 0), /* ya - yz */
  566.                 new Array(1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  567.                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) /* za - zz */ );
  568.             // This MUST be equal to the sum of the equivalent rows above.
  569.             row_sums = new Array(
  570.                 796,   160,    284,    401,    1276,   262,    199,    539,    777,   
  571.                 16,    39,     351,    243,    751,    662,    181,    17,     683,   
  572.                 662,   968,    248,    115,    180,    17,     162,    5
  573.             );
  574.             // Frequencies of starting characters.
  575.             start_freq = new Array(
  576.                 1299,  425,    725,    271,    375,    470,    93,     223,    1009,
  577.                 24,    20,     355,    379,    319,    823,    618,    21,     317,
  578.                 962,   1991,   271,    104,    516,    6,      16,     14
  579.             );
  580.             // This MUST be equal to the sum of all elements in the above array.
  581.             total_sum = 11646;
  582.         }
  583.         if (gibberish) {
  584.             gibber = "abcdefghijklmnopqrstuvwxyz" +
  585.                      "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
  586.                      "0123456789" +
  587.                      "!#$%&()*+,-./:;<=>?@[]^_{|}~";
  588.             if (upper) {
  589.                 /*  Convert to upper case, leaving two copies of the
  590.                     alphabet for two reasons: first, to favour letters
  591.                     over gnarl, and second, to change only the letter case
  592.                     when the mode is selected.  */
  593.                 gibber = gibber.toUpperCase();
  594.             }
  595.         }
  596.     }
  597.     for (line = 1; line <= npass; line++) {
  598.         password = "";
  599.         if (numeric) {
  600.             for (nchars = 0; nchars < pw_length; nchars++) {
  601.                 if ((sep > 0) && ((nchars % sep) == 0) && (nchars > 0)) {
  602.                     password += sepchar();
  603.                 }
  604.                 password += ran1.nextInt(9);
  605.             }
  606.         } else if (!english) {
  607.             for (nchars = 0; nchars < pw_length; nchars++) {
  608.                 if ((sep > 0) && ((nchars % sep) == 0) && (nchars > 0)) {
  609.                     password += sepchar();
  610.                 }
  611.                 if (gibberish) {
  612.                     password += gibber.charAt(ran1.nextInt(gibber.length - 1));
  613.                 } else {
  614.                     password += letters.charAt(ran1.nextInt(25));
  615.                 }
  616.             }
  617.         } else {
  618.             position = ran1.nextInt(total_sum - 1);
  619.             for (row_position = 0, j = 0; position >= row_position;
  620.                  row_position += start_freq[j], j++) {
  621.                 continue;
  622.             }
  623.             password = letters.charAt(i = j - 1);
  624.             nch = 1;
  625.             for (nchars = pw_length - 1; nchars; --nchars) {
  626.                 // Now find random position within the row.
  627.                 position = ran1.nextInt(row_sums[i] - 1);
  628.                 for (row_position = 0, j = 0;
  629.                      position >= row_position;
  630.                      row_position += frequency[i][j], j++) {
  631.                 }
  632.                 if ((sep > 0) && ((nch % sep) == 0)) {
  633.                     password += sepchar();
  634.                 }
  635.                 nch++;
  636.                 password += letters.charAt(i = j - 1);
  637.             }
  638.         }
  639.         /*  If requested, calculate the MD5 signature for this key and
  640.             and save for later appending to the results.  */
  641.         if (makesig) {
  642.             var n, m, hex = "0123456789ABCDEF";
  643.             init();
  644.             for (m = 0; m < password.length; m++) {
  645.                 update(32 + charcodes.indexOf(password.charAt(m)));
  646.             }
  647.             finish();
  648.             for (n = 0; n < 16; n++) {
  649.                 md5v += hex.charAt(digestBits[n] >> 4);
  650.                 md5v += hex.charAt(digestBits[n] & 0xF);
  651.             }
  652.             md5v += "\n";
  653.         }
  654.         aline = "" + line;
  655.         while (aline.length < ndig) {
  656.             aline = " " + aline;
  657.         }
  658.         v += aline + " ) " + password;
  659.         if ((++lineno) >= npline) {
  660.             v += "\n";
  661.             lineno = 0;
  662.         } else {
  663.             v += "  ";
  664.         }
  665.     }
  666.     if (makesig) {
  667.         v += "\n----------  MD5 Signatures  ----------\n" + md5v;
  668.     }
  669.     document.onetime.pad.value = v;
  670.     window.status = "Done.";
  671. }
  672. // -->
  673. </script>


 
 
ce que j'aimerai, c'est suprimer la numérotation, tout simplement, mais au millieu de cette montagne de code... je me sent tout petit
 
Donc si l'un de vous pouvais m'orienter dans c'merdier (super merdier au demeurant), ce serai parfait.
 
Merci


Message édité par dttgb le 19-04-2011 à 22:12:24
Reply

Marsh Posté le 19-04-2011 à 19:13:22   

Reply

Marsh Posté le 19-04-2011 à 21:20:46    

Salut,

 

ton lien est invalide, ça complique encore pas mal la chose pr se retrouver dans ce super merdier au demeurant vu que dans la fonction gen y a directement des références au dom. ;)

Message cité 2 fois
Message édité par vanish le 19-04-2011 à 21:21:13
Reply

Marsh Posté le 19-04-2011 à 22:16:16    

vanish a écrit :

Salut,
 
ton lien est invalide, ça complique encore pas mal la chose pr se retrouver dans ce super merdier au demeurant vu que dans la fonction gen y a directement des références au dom. ;)


 
http://www.minelinks.com/supercode [...] yeux_.html  :ange:  

Reply

Marsh Posté le 19-04-2011 à 22:16:16    

vanish a écrit :

Salut,
 
ton lien est invalide, ça complique encore pas mal la chose pr se retrouver dans ce super merdier au demeurant vu que dans la fonction gen y a directement des références au dom. ;)


 
http://www.minelinks.com/supercode [...] yeux_.html  :ange:  

Reply

Marsh Posté le 20-04-2011 à 10:56:19    

Attends je ne suis pas sur de comprendre.. Ce que tu veux c'est supprimer le bidule genre "1)" avant le mot de passe généré ? C'est pas à la ligne 764 de ton code que tu contruit cela ?  
 
Que se passe-t-il si tu remplace :
 

Code :
  1. v += aline + " ) " + password;


 
par
 

Code :
  1. v += "   " + password;

 
 
?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed