LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009
-
1 févr. 2004 à 17:09
cs_starsystem
Messages postés1Date d'inscriptionsamedi 27 août 2005StatutMembreDernière intervention27 août 2005
-
27 août 2005 à 17:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_starsystem
Messages postés1Date d'inscriptionsamedi 27 août 2005StatutMembreDernière intervention27 août 2005 27 août 2005 à 17:32
super interessant tous vos commentaires!
je ne peux participer car suis débutant
et avide de connaissances.
merci à tous
psycho81
Messages postés84Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention17 février 2008 3 août 2005 à 15:43
bonjour je viens de voir ici un vrai débat !
Passioné et passionant !
En lisant le code et en fesant une recherche on trouve bien d'autres forme de
cryptage (les mêmes qui ont été pompé. On pourra pas le remercier d'avoir
inventé le code, mais au moins on pourra le remercier de l'avoir mis ici :)
Etant moi aussi dans la cryptographie (mais pas en javascript, trop lent)
je tire mon chapeau au créateur de MD5 SHA1 RSA et tout. Sur ce lien, plin
d'info sympa et de source javascript pour le cryptage
http://pajhome.org.uk/crypt/md5/index.html Salutations et svp ... arretez avez ce truc illisible qui fait des pages de long. le \n c'est pas pour des prunes :)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 24 mars 2005 à 18:02
juste comme ça, rsa et md5 sont totalement diférents : on ne fais pas l'un avec l'autre... (enfin, ça ne sert à rien...)
(ne dis pas que je ne connais pas RSA, je le connais très bien...)
si il n'explique pas comment marche sa source, alors elle ,ne vaut rien ! et on peut ajouter que si il ne sait pas expliquer comment elle marche alors il l'a piqué...
fatahfr
Messages postés8Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention 3 avril 2005 24 mars 2005 à 11:52
voila la source sans la pub pour celui qui le veut
a enregister sous .html pour le mettre sur son site
fatahfr
Messages postés8Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention 3 avril 2005 24 mars 2005 à 11:40
""t'as volé une source !!""
des sites qui le propose y en a mille des crypteur moi-meme qui a fait pont et chausseé je me permet meme pas de l insulter
toi tes un jaloux trouve alors ce systeme moi je te prent au mot essaye de le decrypter tu te permet de l insulter de voleur tu parles de choses tu sais meme ce que tu dis tu parles de hachage ou vois tu du hachage
pour info % c est bien du cryptage elaborer par les studio macromedia
tu devrai mieux t instruire avant de parler ou d insulter les gars qui partage leur travail
n essaye de le decryter tu auras un message d erreur
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 19 févr. 2005 à 12:46
c'est marqué RSA et MD5 et en meme temps MD5 128 c'est con, alors que RSA 128 c'est un minimum...
mais ça ça ressemble pas à du RSA c'est pas de la cryyptographie, c'est du hashage, et c'est pas du 128 bits car j'ai pas vu les fonctions qui permetent de le faire ici (j'ai bien vu un exposant mudolu, mais c tt) et si c'est vraiment du RSA+MD5, c'est vraiment crade, et si en plus t'es en 128 bits, alors c'est encore plus crade, et y a rien de compréhensible...
t'as volé une source !!
1/10
cs_petros
Messages postés9Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention 2 août 2004 2 août 2004 à 05:21
Alors la bravo Celelibi pour ton MD5, lit une doc le chiffrement et après on en reparle lol !
juste pour info, ya pas de codage, le %"valeur" c'est le code ascii en Hexa.
par exemple %20 c'est le caratère espace, codage utilisé dans les adresse a une epoque pour exploité des faille dans les script CGI.
cs_tipit
Messages postés17Date d'inscriptiondimanche 29 février 2004StatutMembreDernière intervention 6 août 2004 14 avril 2004 à 23:19
quelqu'un peu vraiment maider, car mon problème est, quand je crypte, puis que je visualise, ca merde on voit juste le cryptage, pas ma page. Il a til qqc que je fais de pas correct, estce que je fais une erreur quelque part???
cordialement
djieff
Celelibi
Messages postés17Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention 9 août 2004 8 mars 2004 à 22:49
tu aura du mal à faire passer quelque message que ce soit vu qu'il n'est pas prévu pour être décrypté, d'ailleur ce que tu obtient c'est pas ton texte crypté, mais une sorte d'emprunte censée être unique à chaque texte différent entré.
cs_aresh
Messages postés24Date d'inscriptionsamedi 19 juillet 2003StatutMembreDernière intervention23 mai 2006 8 mars 2004 à 02:27
C'est totalement génial comme systéme.
J'espére m'en servir bientôt sur mon site de jdr pour faire des message crypté entre les membres.
cs_aresh
Messages postés24Date d'inscriptionsamedi 19 juillet 2003StatutMembreDernière intervention23 mai 2006 8 mars 2004 à 02:26
C'est totalement génial comme systéme.
J'espére m'en servir bientôt sur mon site de jdr pour faire des message crypté entre les membres.
Celelibi
Messages postés17Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention 9 août 2004 26 févr. 2004 à 16:48
en fait il semblerait qu'il soit possible de générer un mot qui aurait pour cible un hash déterminé.
le md5 est basé sur la théorie du chaos (cf google) on a bien des point periodiques dense (les fonctions ff, gg, hh, ii), elle est extrêmement sensible aux consitions initiales (changer nue seul lettre change complètement le hash final sans moyen de le prévoir), et elle est censée être imprévisible, c'est à dire qu'on ne devrait pas pouvoir deviner le hash produit sans reftracer totalement l'algorithme.
c'est ce dernier point qui semble ne pas être respecté, mais de là à ce que le md5 soit réversible on a encore le temps.
neo1502
Messages postés23Date d'inscriptionmercredi 4 juin 2003StatutMembreDernière intervention13 février 2004 13 févr. 2004 à 08:32
et est ce vrai ke c'est fiable a 100%???
Celelibi
Messages postés17Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention 9 août 2004 9 févr. 2004 à 01:27
ce cryptage, c'est du md5, le truc qui existe depuis la nuit des temps.
il n'a rien inventé, et surtout pas ce script que j'ai étudié il y a un moment déjà.
donc bravo Michel Chilowicz pour ce script.
Jsman
Messages postés264Date d'inscriptionjeudi 31 juillet 2003StatutMembreDernière intervention12 juillet 2005 6 févr. 2004 à 22:12
Impressionant.... 12/10
Au fait, c'est quoi le principe de cryptage ?
Merci à gorrk en passant
jeff_the_lifeguard
Messages postés73Date d'inscriptionlundi 13 octobre 2003StatutMembreDernière intervention16 août 2004 5 févr. 2004 à 21:05
Moi ya rien qui marche ;(
juki_webmaster
Messages postés947Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 5 avril 20083 2 févr. 2004 à 09:53
Sa ne semble pas etre de lui ,enfin c'est mon avis .
Faudrait le preciser dans vos sources !
Sinon genial ce systeme !
note pour le vrai auteur de cette source : 10/10 !
Gorrk
Messages postés96Date d'inscriptionmercredi 16 avril 2003StatutMembreDernière intervention26 avril 2007 1 févr. 2004 à 17:43
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Copyright (C) Paul Johnston 1999 - 2000.
* Updated by Greg Holt 2000 - 2001.
* Updated by Michel Chilowicz (2000-2002)
* Under GPL License
*/ /*
* Convert a 32-bit number to a hex string with ls-byte first
*/
var hex_chr = "0123456789abcdef";
function int32toarray(int32)
{
data = new Array();
j=0;
for (i=0;i>(8*k))&255;
}
return data;
}
/*
* Convert a string to a sequence of 16-word blocks, stored as an array.
* Append padding bits and the length, as described in the MD5 standard.
*/
function str2blks_MD5(str,type)
{
nblk = ((str.length + 8) >> 6) + 1;
blks = new Array(nblk * 16);
for(i 0; i < nblk * 16; i++) blks[i] 0;
if (type == 0)
{
for(i = 0; i < str.length; i++) blks[i >> 2] |= str[i] > 2] |= str.charCodeAt(i) > 2] |= 0x80 > 16) + (y >> 16) + (lsw >> 16);
return (msw > (32 - cnt));
} /*
* These functions implement the basic operation for each round of the
* algorithm.
*/
function cmn(q, a, b, x, s, t)
{
return add(rol(add(add(a, q), add(x, t)), s), b);
}
function ff(a, b, c, d, x, s, t)
{
return cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function gg(a, b, c, d, x, s, t)
{
return cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function hh(a, b, c, d, x, s, t)
{
return cmn(b ^ c ^ d, a, b, x, s, t);
}
function ii(a, b, c, d, x, s, t)
{
return cmn(c ^ (b | (~d)), a, b, x, s, t);
} /*
* Take a string and return the hex representation of its MD5.
*/
function calcmd5(str,type)
{
//Modified by MC
x = str2blks_MD5(str,type);
a = 1732584193;
b = -271733879;
c = -1732584194;
d 271733878; for(i 0; i < x.length; i += 16)
{
olda = a;
oldb = b;
oldc = c;
oldd d; a ff(a, b, c, d, x[i+ 0], 7 , -680876936);
d = ff(d, a, b, c, x[i+ 1], 12, -389564586);
c = ff(c, d, a, b, x[i+ 2], 17, 606105819);
b = ff(b, c, d, a, x[i+ 3], 22, -1044525330);
a = ff(a, b, c, d, x[i+ 4], 7 , -176418897);
d = ff(d, a, b, c, x[i+ 5], 12, 1200080426);
c = ff(c, d, a, b, x[i+ 6], 17, -1473231341);
b = ff(b, c, d, a, x[i+ 7], 22, -45705983);
a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
d = ff(d, a, b, c, x[i+ 9], 12, -1958414417);
c = ff(c, d, a, b, x[i+10], 17, -42063);
b = ff(b, c, d, a, x[i+11], 22, -1990404162);
a = ff(a, b, c, d, x[i+12], 7 , 1804603682);
d = ff(d, a, b, c, x[i+13], 12, -40341101);
c = ff(c, d, a, b, x[i+14], 17, -1502002290);
b ff(b, c, d, a, x[i+15], 22, 1236535329); a gg(a, b, c, d, x[i+ 1], 5 , -165796510);
d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
c = gg(c, d, a, b, x[i+11], 14, 643717713);
b = gg(b, c, d, a, x[i+ 0], 20, -373897302);
a = gg(a, b, c, d, x[i+ 5], 5 , -701558691);
d = gg(d, a, b, c, x[i+10], 9 , 38016083);
c = gg(c, d, a, b, x[i+15], 14, -660478335);
b = gg(b, c, d, a, x[i+ 4], 20, -405537848);
a = gg(a, b, c, d, x[i+ 9], 5 , 568446438);
d = gg(d, a, b, c, x[i+14], 9 , -1019803690);
c = gg(c, d, a, b, x[i+ 3], 14, -187363961);
b = gg(b, c, d, a, x[i+ 8], 20, 1163531501);
a = gg(a, b, c, d, x[i+13], 5 , -1444681467);
d = gg(d, a, b, c, x[i+ 2], 9 , -51403784);
c = gg(c, d, a, b, x[i+ 7], 14, 1735328473);
b = gg(b, c, d, a, x[i+12], 20, -1926607734);
a = hh(a, b, c, d, x[i+ 5], 4 , -378558);
d = hh(d, a, b, c, x[i+ 8], 11, -2022574463);
c = hh(c, d, a, b, x[i+11], 16, 1839030562);
b = hh(b, c, d, a, x[i+14], 23, -35309556);
a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
d = hh(d, a, b, c, x[i+ 4], 11, 1272893353);
c = hh(c, d, a, b, x[i+ 7], 16, -155497632);
b = hh(b, c, d, a, x[i+10], 23, -1094730640);
a = hh(a, b, c, d, x[i+13], 4 , 681279174);
d = hh(d, a, b, c, x[i+ 0], 11, -358537222);
c = hh(c, d, a, b, x[i+ 3], 16, -722521979);
b = hh(b, c, d, a, x[i+ 6], 23, 76029189);
a = hh(a, b, c, d, x[i+ 9], 4 , -640364487);
d = hh(d, a, b, c, x[i+12], 11, -421815835);
c = hh(c, d, a, b, x[i+15], 16, 530742520);
b hh(b, c, d, a, x[i+ 2], 23, -995338651); a ii(a, b, c, d, x[i+ 0], 6 , -198630844);
d = ii(d, a, b, c, x[i+ 7], 10, 1126891415);
c = ii(c, d, a, b, x[i+14], 15, -1416354905);
b = ii(b, c, d, a, x[i+ 5], 21, -57434055);
a = ii(a, b, c, d, x[i+12], 6 , 1700485571);
d = ii(d, a, b, c, x[i+ 3], 10, -1894986606);
c = ii(c, d, a, b, x[i+10], 15, -1051523);
b = ii(b, c, d, a, x[i+ 1], 21, -2054922799);
a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
d = ii(d, a, b, c, x[i+15], 10, -30611744);
c = ii(c, d, a, b, x[i+ 6], 15, -1560198380);
b = ii(b, c, d, a, x[i+13], 21, 1309151649);
a = ii(a, b, c, d, x[i+ 4], 6 , -145523070);
d = ii(d, a, b, c, x[i+11], 10, -1120210379);
c = ii(c, d, a, b, x[i+ 2], 15, 718787259);
b ii(b, c, d, a, x[i+ 9], 21, -343485551); a add(a, olda);
b = add(b, oldb);
c = add(c, oldc);
d = add(d, oldd);
}
//return rhex(a) + rhex(b) + rhex(c) + rhex(d);
int32 = new Array(a,b,c,d);
return int32toarray(int32);
}
//Javascryptor by Michel Chilowicz
//Under GNU-GPL Licence (cf http://www.gnu.org)
values64 = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O",
"P","Q","R","S","T","U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o",
"p","q","r","s","t","u","v","w","x","y","z",
"0","1","2","3","4","5","6","7","8","9","+","/");
function base64_encode(tab)
{
var resultat ="";
for (i=0;i> 2]+values64[(tab[i] > 2]+values64[((tab[i] > 4)]+values64[(tab[i+1] > 2]+values64[((tab[i] > 4)]+values64[((tab[i+1] >6)]+values64[tab[i+2]&63];
}
}
}
function base64_filter(text)
{
var resultat = "";
for (i=0;i47) && (ordinal64) && (ordinal96) && (ordinal47) && (ordinal64) && (ordinal96) && (ordinal-1)) data[j++] = (car0 > 4);
if ((car1 > -1) && (car2>-1)) data[j++] = ((car1 & 15) > 2);
if ((car2 > -1) && (car3>-1)) data[j++] = ((car2 & 3)
LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009 1 févr. 2004 à 17:09
10/10 parce que ça marche bien, y a pas l'air d'avoir de bug. Par contre, il y a un énorme problème ... Comment ça marche ? Y a pas de commentaire ... et ta source revient à l'écriture d'un script JavaScript dans ta page, donc pas moyen - à moins de se faire chier - d'avoir la source pour crypter et ainsi l'étudier.
27 août 2005 à 17:32
je ne peux participer car suis débutant
et avide de connaissances.
merci à tous
3 août 2005 à 15:43
Passioné et passionant !
En lisant le code et en fesant une recherche on trouve bien d'autres forme de
cryptage (les mêmes qui ont été pompé. On pourra pas le remercier d'avoir
inventé le code, mais au moins on pourra le remercier de l'avoir mis ici :)
Etant moi aussi dans la cryptographie (mais pas en javascript, trop lent)
je tire mon chapeau au créateur de MD5 SHA1 RSA et tout. Sur ce lien, plin
d'info sympa et de source javascript pour le cryptage
http://pajhome.org.uk/crypt/md5/index.html
Salutations et svp ... arretez avez ce truc illisible qui fait des pages de long. le \n c'est pas pour des prunes :)
24 mars 2005 à 18:02
(ne dis pas que je ne connais pas RSA, je le connais très bien...)
si il n'explique pas comment marche sa source, alors elle ,ne vaut rien ! et on peut ajouter que si il ne sait pas expliquer comment elle marche alors il l'a piqué...
24 mars 2005 à 11:52
<script>
<!--
document.write(unescape("%3Cscript%20language%3DJavaScript%3E%0D%0Aself.moveTo%280%2C0%29%3B%0D%0Aself.resizeTo%28screen.width/1.95%2Cscreen.height/1.5%29%3B%0D%0A%3C/script%3E%0D%0A%3C%21DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204.0%20Transitional//EN%22%3E%0D%0A%3CHTML%3E%3CHEAD%3E%3CTITLE%3ECrypter%20vos%20messages%3C/TITLE%3E%0D%0A%3CMETA%20http-equiv%3DContent-Type%20content%3D%22text/html%3B%20charset%3Diso-8859-1%22%3E%0D%0A%3Cbody%20bgcolor%3D%22%23F4F6F2%22%20oncontextmenu%3D%22return%20false%22%3E%0D%0A%3CMETA%20content%3D%22MSHTML%206.00.2800.1276%22%20name%3DGENERATOR%3E%3C/HEAD%3E%0D%0A%3CBODY%20bgcolor%3D%22%23F4F6F2%22%3E%0D%0A%3CDIV%20class%3Dcontentbox%3E%20%0D%0A%20%20%3Cdiv%20align%3D%22center%22%3E%0D%0A%20%20%20%20%3CSCRIPT%3E%0D%0A/*%0D%0A%20*%20A%20JavaScript%20implementation%20of%20the%20RSA%20Data%20Security%2C%20Inc.%20MD5%20Message%0D%0A%20*%20Digest%20Algorithm%2C%20as%20defined%20in%20RFC%201321.%0D%0A%20*%20Copyright%20%28C%29%20Paul%20Johnston%201999%20-%202000.%0D%0A%20*%20Updated%20by%20Greg%20Holt%202000%20-%202001.%0D%0A%20*%20Updated%20by%20Michel%20Chilowicz%20%3Cmichel@netastuces.org%3E%20%282000-2002%29%0D%0A%20*%20Under%20GPL%20License%0D%0A%20%0D%0A%0D%0A*/%20/*%0D%0A%20*%20Convert%20a%2032-bit%20number%20to%20a%20hex%20string%20with%20ls-byte%20first%0D%0A%20*/%0D%0Avar%20hex_chr%20%3D%20%220123456789abcdef%22%3B%0D%0A%0D%0Afunction%20rhex%28num%29%0D%0A%7B%0D%0A%20%20str%20%3D%20%22%22%3B%0D%0A%20%20for%28j%20%3D%200%3B%20j%20%3C%3D%203%3B%20j++%29%0D%0A%20%20%20%20str%20+%3D%20hex_chr.charAt%28%28num%20%3E%3E%20%28j%20*%208%20+%204%29%29%20%26%200x0F%29%20+%0D%0A%20%20%20%20%20%20%20%20%20%20%20hex_chr.charAt%28%28num%20%3E%3E%20%28j%20*%208%29%29%20%26%200x0F%29%3B%0D%0A%20%20return%20str%3B%0D%0A%7D%20%0D%0A%0D%0Afunction%20int32toarray%28int32%29%0D%0A%7B%0D%0A%20%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20j%3D0%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Cint32.length%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20for%20%28k%3D0%3Bk%3C4%3Bk++%29%20data%5Bj++%5D%20%3D%20%28int32%5Bi%5D%3E%3E%288*k%29%29%26255%3B%0D%0A%20%20%7D%0D%0A%20%20return%20data%3B%0D%0A%7D%0D%0A%20%20%20%20%0D%0A%0D%0A/*%0D%0A%20*%20Convert%20a%20string%20to%20a%20sequence%20of%2016-word%20blocks%2C%20stored%20as%20an%20array.%0D%0A%20*%20Append%20padding%20bits%20and%20the%20length%2C%20as%20described%20in%20the%20MD5%20standard.%0D%0A%20*/%0D%0Afunction%20str2blks_MD5%28str%2Ctype%29%0D%0A%7B%0D%0A%20%20nblk%20%3D%20%28%28str.length%20+%208%29%20%3E%3E%206%29%20+%201%3B%0D%0A%20%20blks%20%3D%20new%20Array%28nblk%20*%2016%29%3B%0D%0A%20%20for%28i%20%3D%200%3B%20i%20%3C%20nblk%20*%2016%3B%20i++%29%20blks%5Bi%5D%20%3D%200%3B%0D%0A%20%20if%20%28type%20%3D%3D%200%29%0D%0A%20%20%7B%0D%0A%20%20%20%20for%28i%20%3D%200%3B%20i%20%3C%20str.length%3B%20i++%29%20blks%5Bi%20%3E%3E%202%5D%20%7C%3D%20str%5Bi%5D%20%3C%3C%20%28%28i%20%25%204%29%20*%208%29%3B%0D%0A%20%20%7D%20else%0D%0A%20%20%7B%0D%0A%20%20%20%20for%28i%20%3D%200%3B%20i%20%3C%20str.length%3B%20i++%29%20blks%5Bi%20%3E%3E%202%5D%20%7C%3D%20str.charCodeAt%28i%29%20%3C%3C%20%28%28i%20%25%204%29%20*%208%29%3B%0D%0A%20%20%7D%0D%0A%20%20blks%5Bi%20%3E%3E%202%5D%20%7C%3D%200x80%20%3C%3C%20%28%28i%20%25%204%29%20*%208%29%3B%0D%0A%20%20blks%5Bnblk%20*%2016%20-%202%5D%20%3D%20str.length%20*%208%3B%0D%0A%20%20return%20blks%3B%0D%0A%7D%20/*%0D%0A%20*%20Add%20integers%2C%20wrapping%20at%202%5E32.%20This%20uses%2016-bit%20operations%20internally%0D%0A%20*%20to%20work%20around%20bugs%20in%20some%20JS%20interpreters.%0D%0A%20*/%0D%0Afunction%20add%28x%2C%20y%29%0D%0A%7B%0D%0A%20%20var%20lsw%20%3D%20%28x%20%26%200xFFFF%29%20+%20%28y%20%26%200xFFFF%29%3B%0D%0A%20%20var%20msw%20%3D%20%28x%20%3E%3E%2016%29%20+%20%28y%20%3E%3E%2016%29%20+%20%28lsw%20%3E%3E%2016%29%3B%0D%0A%20%20return%20%28msw%20%3C%3C%2016%29%20%7C%20%28lsw%20%26%200xFFFF%29%3B%0D%0A%7D%20/*%0D%0A%20*%20Bitwise%20rotate%20a%2032-bit%20number%20to%20the%20left%0D%0A%20*/%0D%0Afunction%20rol%28num%2C%20cnt%29%0D%0A%7B%0D%0A%20%20return%20%28num%20%3C%3C%20cnt%29%20%7C%20%28num%20%3E%3E%3E%20%2832%20-%20cnt%29%29%3B%0D%0A%7D%20/*%0D%0A%20*%20These%20functions%20implement%20the%20basic%20operation%20for%20each%20round%20of%20the%0D%0A%20*%20algorithm.%0D%0A%20*/%0D%0Afunction%20cmn%28q%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20add%28rol%28add%28add%28a%2C%20q%29%2C%20add%28x%2C%20t%29%29%2C%20s%29%2C%20b%29%3B%0D%0A%7D%0D%0Afunction%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20cmn%28%28b%20%26%20c%29%20%7C%20%28%28%7Eb%29%20%26%20d%29%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%3B%0D%0A%7D%0D%0Afunction%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20cmn%28%28b%20%26%20d%29%20%7C%20%28c%20%26%20%28%7Ed%29%29%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%3B%0D%0A%7D%0D%0Afunction%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20cmn%28b%20%5E%20c%20%5E%20d%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%3B%0D%0A%7D%0D%0Afunction%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20cmn%28c%20%5E%20%28b%20%7C%20%28%7Ed%29%29%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%3B%0D%0A%7D%20/*%0D%0A%20*%20Take%20a%20string%20and%20return%20the%20hex%20representation%20of%20its%20MD5.%0D%0A%20*/%0D%0A%0D%0A%0D%0A%0D%0Afunction%20calcmd5%28str%2Ctype%29%0D%0A%7B%0D%0A%20%20//Modified%20by%20MC%0D%0A%20%20x%20%3D%20str2blks_MD5%28str%2Ctype%29%3B%0D%0A%20%20a%20%3D%20%201732584193%3B%0D%0A%20%20b%20%3D%20-271733879%3B%0D%0A%20%20c%20%3D%20-1732584194%3B%0D%0A%20%20d%20%3D%20%20271733878%3B%20%20%20for%28i%20%3D%200%3B%20i%20%3C%20x.length%3B%20i%20+%3D%2016%29%0D%0A%20%20%7B%0D%0A%20%20%20%20olda%20%3D%20a%3B%0D%0A%20%20%20%20oldb%20%3D%20b%3B%0D%0A%20%20%20%20oldc%20%3D%20c%3B%0D%0A%20%20%20%20oldd%20%3D%20d%3B%20%20%20%20%20a%20%3D%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%200%5D%2C%207%20%2C%20-680876936%29%3B%0D%0A%20%20%20%20d%20%3D%20ff%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%201%5D%2C%2012%2C%20-389564586%29%3B%0D%0A%20%20%20%20c%20%3D%20ff%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%202%5D%2C%2017%2C%20%20606105819%29%3B%0D%0A%20%20%20%20b%20%3D%20ff%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%203%5D%2C%2022%2C%20-1044525330%29%3B%0D%0A%20%20%20%20a%20%3D%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%204%5D%2C%207%20%2C%20-176418897%29%3B%0D%0A%20%20%20%20d%20%3D%20ff%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%205%5D%2C%2012%2C%20%201200080426%29%3B%0D%0A%20%20%20%20c%20%3D%20ff%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%206%5D%2C%2017%2C%20-1473231341%29%3B%0D%0A%20%20%20%20b%20%3D%20ff%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%207%5D%2C%2022%2C%20-45705983%29%3B%0D%0A%20%20%20%20a%20%3D%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%208%5D%2C%207%20%2C%20%201770035416%29%3B%0D%0A%20%20%20%20d%20%3D%20ff%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%209%5D%2C%2012%2C%20-1958414417%29%3B%0D%0A%20%20%20%20c%20%3D%20ff%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+10%5D%2C%2017%2C%20-42063%29%3B%0D%0A%20%20%20%20b%20%3D%20ff%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+11%5D%2C%2022%2C%20-1990404162%29%3B%0D%0A%20%20%20%20a%20%3D%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+12%5D%2C%207%20%2C%20%201804603682%29%3B%0D%0A%20%20%20%20d%20%3D%20ff%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+13%5D%2C%2012%2C%20-40341101%29%3B%0D%0A%20%20%20%20c%20%3D%20ff%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+14%5D%2C%2017%2C%20-1502002290%29%3B%0D%0A%20%20%20%20b%20%3D%20ff%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+15%5D%2C%2022%2C%20%201236535329%29%3B%20%20%20%20%20%20%20%20a%20%3D%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%201%5D%2C%205%20%2C%20-165796510%29%3B%0D%0A%20%20%20%20d%20%3D%20gg%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%206%5D%2C%209%20%2C%20-1069501632%29%3B%0D%0A%20%20%20%20c%20%3D%20gg%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+11%5D%2C%2014%2C%20%20643717713%29%3B%0D%0A%20%20%20%20b%20%3D%20gg%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%200%5D%2C%2020%2C%20-373897302%29%3B%0D%0A%20%20%20%20a%20%3D%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%205%5D%2C%205%20%2C%20-701558691%29%3B%0D%0A%20%20%20%20d%20%3D%20gg%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+10%5D%2C%209%20%2C%20%2038016083%29%3B%0D%0A%20%20%20%20c%20%3D%20gg%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+15%5D%2C%2014%2C%20-660478335%29%3B%0D%0A%20%20%20%20b%20%3D%20gg%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%204%5D%2C%2020%2C%20-405537848%29%3B%0D%0A%20%20%20%20a%20%3D%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%209%5D%2C%205%20%2C%20%20568446438%29%3B%0D%0A%20%20%20%20d%20%3D%20gg%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+14%5D%2C%209%20%2C%20-1019803690%29%3B%0D%0A%20%20%20%20c%20%3D%20gg%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%203%5D%2C%2014%2C%20-187363961%29%3B%0D%0A%20%20%20%20b%20%3D%20gg%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%208%5D%2C%2020%2C%20%201163531501%29%3B%0D%0A%20%20%20%20a%20%3D%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+13%5D%2C%205%20%2C%20-1444681467%29%3B%0D%0A%20%20%20%20d%20%3D%20gg%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%202%5D%2C%209%20%2C%20-51403784%29%3B%0D%0A%20%20%20%20c%20%3D%20gg%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%207%5D%2C%2014%2C%20%201735328473%29%3B%0D%0A%20%20%20%20b%20%3D%20gg%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+12%5D%2C%2020%2C%20-1926607734%29%3B%0D%0A%20%20%20%0D%0A%20%20%20%20a%20%3D%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%205%5D%2C%204%20%2C%20-378558%29%3B%0D%0A%20%20%20%20d%20%3D%20hh%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%208%5D%2C%2011%2C%20-2022574463%29%3B%0D%0A%20%20%20%20c%20%3D%20hh%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+11%5D%2C%2016%2C%20%201839030562%29%3B%0D%0A%20%20%20%20b%20%3D%20hh%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+14%5D%2C%2023%2C%20-35309556%29%3B%0D%0A%20%20%20%20a%20%3D%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%201%5D%2C%204%20%2C%20-1530992060%29%3B%0D%0A%20%20%20%20d%20%3D%20hh%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%204%5D%2C%2011%2C%20%201272893353%29%3B%0D%0A%20%20%20%20c%20%3D%20hh%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%207%5D%2C%2016%2C%20-155497632%29%3B%0D%0A%20%20%20%20b%20%3D%20hh%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+10%5D%2C%2023%2C%20-1094730640%29%3B%0D%0A%20%20%20%20a%20%3D%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+13%5D%2C%204%20%2C%20%20681279174%29%3B%0D%0A%20%20%20%20d%20%3D%20hh%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%200%5D%2C%2011%2C%20-358537222%29%3B%0D%0A%20%20%20%20c%20%3D%20hh%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%203%5D%2C%2016%2C%20-722521979%29%3B%0D%0A%20%20%20%20b%20%3D%20hh%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%206%5D%2C%2023%2C%20%2076029189%29%3B%0D%0A%20%20%20%20a%20%3D%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%209%5D%2C%204%20%2C%20-640364487%29%3B%0D%0A%20%20%20%20d%20%3D%20hh%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+12%5D%2C%2011%2C%20-421815835%29%3B%0D%0A%20%20%20%20c%20%3D%20hh%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+15%5D%2C%2016%2C%20%20530742520%29%3B%0D%0A%20%20%20%20b%20%3D%20hh%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%202%5D%2C%2023%2C%20-995338651%29%3B%20%20%20%20%20a%20%3D%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%200%5D%2C%206%20%2C%20-198630844%29%3B%0D%0A%20%20%20%20d%20%3D%20ii%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%207%5D%2C%2010%2C%20%201126891415%29%3B%0D%0A%20%20%20%20c%20%3D%20ii%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+14%5D%2C%2015%2C%20-1416354905%29%3B%0D%0A%20%20%20%20b%20%3D%20ii%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%205%5D%2C%2021%2C%20-57434055%29%3B%0D%0A%20%20%20%20a%20%3D%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+12%5D%2C%206%20%2C%20%201700485571%29%3B%0D%0A%20%20%20%20d%20%3D%20ii%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%203%5D%2C%2010%2C%20-1894986606%29%3B%0D%0A%20%20%20%20c%20%3D%20ii%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+10%5D%2C%2015%2C%20-1051523%29%3B%0D%0A%20%20%20%20b%20%3D%20ii%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%201%5D%2C%2021%2C%20-2054922799%29%3B%0D%0A%20%20%20%20a%20%3D%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%208%5D%2C%206%20%2C%20%201873313359%29%3B%0D%0A%20%20%20%20d%20%3D%20ii%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+15%5D%2C%2010%2C%20-30611744%29%3B%0D%0A%20%20%20%20c%20%3D%20ii%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%206%5D%2C%2015%2C%20-1560198380%29%3B%0D%0A%20%20%20%20b%20%3D%20ii%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+13%5D%2C%2021%2C%20%201309151649%29%3B%0D%0A%20%20%20%20a%20%3D%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%204%5D%2C%206%20%2C%20-145523070%29%3B%0D%0A%20%20%20%20d%20%3D%20ii%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+11%5D%2C%2010%2C%20-1120210379%29%3B%0D%0A%20%20%20%20c%20%3D%20ii%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%202%5D%2C%2015%2C%20%20718787259%29%3B%0D%0A%20%20%20%20b%20%3D%20ii%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%209%5D%2C%2021%2C%20-343485551%29%3B%20%20%20%20%20a%20%3D%20add%28a%2C%20olda%29%3B%0D%0A%20%20%20%20b%20%3D%20add%28b%2C%20oldb%29%3B%0D%0A%20%20%20%20c%20%3D%20add%28c%2C%20oldc%29%3B%0D%0A%20%20%20%20d%20%3D%20add%28d%2C%20oldd%29%3B%0D%0A%20%20%7D%0D%0A%20%20//return%20rhex%28a%29%20+%20rhex%28b%29%20+%20rhex%28c%29%20+%20rhex%28d%29%3B%0D%0A%20%20int32%20%3D%20new%20Array%28a%2Cb%2Cc%2Cd%29%3B%0D%0A%20%20return%20int32toarray%28int32%29%3B%0D%0A%7D%0D%0A%3C/SCRIPT%3E%0D%0A%20%20%20%20%3CSCRIPT%3E%0D%0A//Javascryptor%20by%20Michel%20Chilowicz%20%3Cmichel@netastuces.org%3E%0D%0A//Under%20GNU-GPL%20Licence%20%28cf%20http%3A//www.gnu.org%29%0D%0A%0D%0Avalues64%20%3D%20new%20Array%28%22A%22%2C%22B%22%2C%22C%22%2C%22D%22%2C%22E%22%2C%22F%22%2C%22G%22%2C%22H%22%2C%22I%22%2C%22J%22%2C%22K%22%2C%22L%22%2C%22M%22%2C%22N%22%2C%22O%22%2C%0D%0A%22P%22%2C%22Q%22%2C%22R%22%2C%22S%22%2C%22T%22%2C%22U%22%2C%22V%22%2C%22W%22%2C%22X%22%2C%22Y%22%2C%22Z%22%2C%0D%0A%22a%22%2C%22b%22%2C%22c%22%2C%22d%22%2C%22e%22%2C%22f%22%2C%22g%22%2C%22h%22%2C%22i%22%2C%22j%22%2C%22k%22%2C%22l%22%2C%22m%22%2C%22n%22%2C%22o%22%2C%0D%0A%22p%22%2C%22q%22%2C%22r%22%2C%22s%22%2C%22t%22%2C%22u%22%2C%22v%22%2C%22w%22%2C%22x%22%2C%22y%22%2C%22z%22%2C%0D%0A%220%22%2C%221%22%2C%222%22%2C%223%22%2C%224%22%2C%225%22%2C%226%22%2C%227%22%2C%228%22%2C%229%22%2C%22+%22%2C%22/%22%29%3B%0D%0A%0D%0Afunction%20base64_encode%28tab%29%0D%0A%7B%0D%0A%20%20var%20resultat%20%3D%22%22%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Ctab.length+1%3Bi+%3D3%29%0D%0A%20%20%7B%0D%0A%20%20%20%20if%20%28tab.length%20%3C%20%28i+1%29%29%20//%3D%3Di%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20return%20resultat%3B%0D%0A%20%20%20%20%7D%20else%20if%20%28tab.length%20%3D%3D%20%28i+1%29%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20resultat+%3Dvalues64%5Btab%5Bi%5D%20%3E%3E%202%5D+values64%5B%28tab%5Bi%5D%20%3C%3C%204%29%2648%5D+%22%3D%3D%22%3B%0D%0A%20%20%20%20%20%20return%20resultat%3B%0D%0A%20%20%20%20%7D%20else%20if%20%28tab.length%20%3D%3D%20%28i+2%29%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20resultat+%3Dvalues64%5Btab%5Bi%5D%20%3E%3E%202%5D+values64%5B%28%28tab%5Bi%5D%20%3C%3C%204%29%2648%29%20%7C%20%28tab%5Bi+1%5D%20%3E%3E%204%29%5D+values64%5B%28tab%5Bi+1%5D%20%3C%3C%202%29%2660%5D+%22%3D%22%3B%0D%0A%20%20%20%20%20%20return%20resultat%3B%0D%0A%20%20%20%20%7D%20else%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20resultat+%3Dvalues64%5Btab%5Bi%5D%20%3E%3E%202%5D+values64%5B%28%28tab%5Bi%5D%20%3C%3C%204%29%2648%29%20%7C%20%28tab%5Bi+1%5D%20%3E%3E%204%29%5D+values64%5B%28%28tab%5Bi+1%5D%20%3C%3C%202%29%2660%29%20%7C%20%28tab%5Bi+2%5D%20%3E%3E6%29%5D+values64%5Btab%5Bi+2%5D%2663%5D%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0Afunction%20base64_filter%28text%29%0D%0A%7B%0D%0A%20%20var%20resultat%20%3D%20%22%22%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Ctext.length%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20var%20ordinal%20%3D%20text.charCodeAt%28i%29%3B%0D%0A%20%20%20%20if%20%28%28%28ordinal%3E47%29%20%26%26%20%28ordinal%3C58%29%29%20%7C%7C%20%28%28ordinal%3E64%29%20%26%26%20%28ordinal%3C91%29%29%20%7C%7C%20%28%28ordinal%3E96%29%20%26%26%20%28ordinal%3C123%29%29%20%7C%7C%20%28ordinal%3D%3D43%29%20%7C%7C%20%28ordinal%3D%3D47%29%20%7C%7C%20%28ordinal%3D%3D61%29%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20resultat+%3Dtext.substr%28i%2C1%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%0D%0Afunction%20let2num%28let%29%0D%0A%7B%0D%0A%20%20var%20ordinal%20%3D%20let%3B%0D%0A%20%20if%20%28%28ordinal%3E47%29%20%26%26%20%28ordinal%3C58%29%29%20return%20%28ordinal%20+4%29%3B%0D%0A%20%20if%20%28%28ordinal%3E64%29%20%26%26%20%28ordinal%3C91%29%29%20return%20%28ordinal-65%29%3B%0D%0A%20%20if%20%28%28ordinal%3E96%29%20%26%26%20%28ordinal%3C123%29%29%20return%20%28ordinal-71%29%3B%0D%0A%20%20if%20%28ordinal%3D%3D43%29%20return%2062%3B%0D%0A%20%20if%20%28ordinal%3D%3D47%29%20return%2063%3B%0D%0A%20%20if%20%28ordinal%3D%3D61%29%20return%20-1%3B%0D%0A%20%20return%20-1%3B%0D%0A%7D%0D%0A%0D%0A%0D%0Afunction%20base64_decode%28text%29%0D%0A%7B%0D%0A%20%20var%20j%3D0%3B%0D%0A%20%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20text%20%3D%20base64_filter%28text%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Ctext.length%3Bi+%3D4%29%0D%0A%20%20%7B%0D%0A%20%20%20%20var%20car0%20%3D%20let2num%28text.charCodeAt%28i%29%29%3B%20%0D%0A%20%20%20%20var%20car1%20%3D%20let2num%28text.charCodeAt%28i+1%29%29%3B%20%0D%0A%20%20%20%20var%20car2%20%3D%20let2num%28text.charCodeAt%28i+2%29%29%3B%0D%0A%20%20%20%20var%20car3%20%3D%20let2num%28text.charCodeAt%28i+3%29%29%3B%0D%0A%20%20%20%20if%20%28%28car0%20%3E%20-1%29%20%26%26%20%28car1%3E-1%29%29%20data%5Bj++%5D%20%3D%20%28car0%20%3C%3C%202%29%20%7C%20%28car1%20%3E%3E%204%29%3B%0D%0A%20%20%20%20if%20%28%28car1%20%3E%20-1%29%20%26%26%20%28car2%3E-1%29%29%20data%5Bj++%5D%20%3D%20%28%28car1%20%26%2015%29%20%3C%3C%204%29%20%7C%20%28car2%20%3E%3E%202%29%3B%0D%0A%20%20%20%20if%20%28%28car2%20%3E%20-1%29%20%26%26%20%28car3%3E-1%29%29%20data%5Bj++%5D%20%3D%20%28%28car2%20%26%203%29%20%3C%3C%206%29%20%7C%20%28car3%29%3B%0D%0A%20%20%7D%0D%0A%20%20return%20data%3B%0D%0A%7D%0D%0A%0D%0Afunction%20encode_text%28text%29%0D%0A%7B%0D%0A%20%20var%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Ctext.length%3Bi++%29%20data%5Bi%5D%20%3D%20text.charCodeAt%28i%29%3B%0D%0A%20%20return%20base64_encode%28data%29%3B%0D%0A%7D%0D%0A%0D%0Afunction%20decode_text%28text%29%0D%0A%7B%0D%0A%20%20var%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20resultat%20%3D%20%27%27%3B%0D%0A%20%20data%20%3D%20base64_decode%28text%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Cdata.length%3Bi++%29%20resultat+%3DString.fromCharCode%28data%5Bi%5D%29%3B%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%0D%0Afunction%20mc4%28data%2Ckey%29%0D%0A%7B%0D%0A%20%20var%20tab1%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20tab2%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20resultat%20%3D%20new%20Array%28%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3C256%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20tab1%5Bi%5D%20%3D%20i%3B%0D%0A%20%20%20%20tab2%5Bi%5D%20%3D%20key%5Bi%25%28key.length%29%5D%3B%0D%0A%20%20%7D%0D%0A%20%20var%20j%3D0%3B%0D%0A%20%20for%20%28var%20i%3D0%3Bi%3C256%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20j%3D%20%28j+%20tab1%5Bi%5D%20+%20tab2%5Bj%5D%29%25256%3B%0D%0A%20%20%20%20var%20temp%20%3D%20tab1%5Bi%5D%3B%0D%0A%20%20%20%20tab1%5Bi%5D%20%3D%20tab1%5Bj%5D%3B%0D%0A%20%20%20%20tab1%5Bj%5D%20%3D%20temp%3B%0D%0A%20%20%7D%0D%0A%20%20i%3D0%3Bj%3D0%3B%0D%0A%20%20for%20%28var%20k%3D0%3Bk%3Cdata.length%3Bk++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20i%20%3D%20%28i+1%29%25256%3B%0D%0A%20%20%20%20j%20%3D%20%28j+tab1%5Bi%5D%29%25256%3B%0D%0A%20%20%20%20var%20temp%20%3D%20tab1%5Bi%5D%3B%0D%0A%20%20%20%20tab1%5Bi%5D%20%3D%20tab1%5Bj%5D%3B%0D%0A%20%20%20%20tab1%5Bj%5D%20%3D%20temp%3B%0D%0A%20%20%20%20resultat%5Bk%5D%20%3D%20data%5Bk%5D%20%5E%20tab1%5B%28tab1%5Bi%5D%20+%20tab1%5Bj%5D%29%25256%5D%3B%0D%0A%20%20%7D%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%0D%0Afunction%20octet_alea%28%29%0D%0A%7B%0D%0A%20%20return%20%28Math.floor%28Math.random%28%29*256%29%29%3B%0D%0A%7D%0D%0A%0D%0Afunction%20crypt_text%28text%2Cpassword%29%0D%0A%7B%0D%0A%20%20var%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20key%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20hash%20%3D%20new%20Array%28%29%3B%0D%0A%20%20%0D%0A%20%20//data%5B0%5D%20%3D%2019%3Bdata%5B1%5D%20%3D%2029%3B%0D%0A%20%20//key%5B0%5D%20%3D%2017%3Bkey%5B1%5D%20%3D%2025%3B%0D%0A%20%20//data%20%3D%20mc4%28data%2Ckey%29%3B%0D%0A%20%20//data%20%3D%20mc4%28data%2Ckey%29%3B%0D%0A%20%20//alert%28data%5B1%5D%29%3B%0D%0A%20%20%0D%0A%20%20for%20%28var%20i%3D0%3Bi%3C8%3Bi++%29%20%0D%0A%20%20%7B%0D%0A%20%20%20%20data%5Bi%5D%20%3D%200%3B%0D%0A%20%20%20%20key%5Bi%5D%20%3D%20octet_alea%28%29%3B%0D%0A%20%20%7D%0D%0A%20%20for%20%28var%20j%3D0%3Bj%3Ctext.length%3Bj++%29%20data%5Bi+j%5D%20%3D%20text.charCodeAt%28j%29%3B%0D%0A%20%20for%20%28var%20j%3D0%3Bj%3Cpassword.length%3Bj++%29%20key%5Bi+j%5D%20%3D%20password.charCodeAt%28j%29%3B%0D%0A%20%20hash%20%3D%20calcmd5%28key%2C0%29%3B%20%0D%0A%20%20data%20%3D%20mc4%28data%2Chash%29%3B%0D%0A%20%20for%20%28var%20i%3D0%3Bi%3C8%3Bi++%29%20data%5Bi%5D%20%3D%20key%5Bi%5D%3B%0D%0A%20%20resultat%20%3D%20base64_encode%28data%29%3B%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%0D%0Afunction%20decrypt_text%28text%2Cpassword%29%0D%0A%7B%0D%0A%20%20var%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20key%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20hash%20%3D%20new%20Array%28%29%3B%0D%0A%20%20data%20%3D%20base64_decode%28text%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3C8%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20key%5Bi%5D%20%3D%20data%5Bi%5D%3B%0D%0A%20%20%7D%0D%0A%20%20//data%20%3D%20data.slice%288%2Cdata.length%29%3B%0D%0A%20%20for%20%28j%3D0%3Bj%3Cpassword.length%3Bj++%29%20key%5Bi+j%5D%20%3D%20password.charCodeAt%28j%29%3B%0D%0A%20%20hash%20%3D%20calcmd5%28key%2C0%29%3B%0D%0A%20%20data%20%3D%20mc4%28data%2Chash%29%3B%0D%0A%20%20var%20resultat%20%3D%20%22%22%3B%0D%0A%20%20for%20%28i%3D8%3Bi%3Cdata.length%3Bi++%29%20resultat+%3DString.fromCharCode%28data%5Bi%5D%29%3B%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%3C/SCRIPT%3E%0D%0A%20%20%3Ciframe%20src%3D%22%22%20width%3D%22468%22%20height%3D%2260%22%20scrolling%3D%22no%22%20frameborder%3D%220%22%3E%3C/iframe%3E%20%3C/div%3E%0D%0A%20%20%3CFORM%20name%3Dformul%20method%3Dpost%3E%0D%0A%20%20%20%20%3CP%20align%3D%22center%22%3E%3Cstrong%3ECrypter%20vos%20messages%3C/strong%3E%3C/P%3E%0D%0A%20%20%20%20%3CP%20align%3D%22center%22%3E%3CFONT%20face%3D%22Verdana%2C%20Arial%2C%20Helvetica%2C%20sans-serif%22%20size%3D2%3ETexte%20%0D%0A%20%20%20%20%20%20%E0%20%3Cstrong%3EC%3C/strong%3Erypter/%3Cstrong%3ED%3C/strong%3E%E9crypter%20%3A%3CBR%3E%0D%0A%20%20%20%20%20%20%3CTEXTAREA%20name%3Ddonnees%20rows%3D%2215%22%20%20wrap%3DVIRTUAL%20cols%3D%2260%22%20style%3D%22background-color%3A%20%23D7D7D7%3B%20color%3A%20Black%3B%20%0D%0Afont-family%3A%20Verdana%3B%20font-size%3A%2011px%3B%20border%3A%201%20solid%20black%22%22%3E%3C/TEXTAREA%3E%0D%0A%20%20%20%20%20%20%3CBR%3E%0D%0A%20%20%20%20%20%20Phrase%20de%20%3Cstrong%3EC%3C/strong%3Eryptage/%3Cstrong%3ED%3C/strong%3E%E9cryptage%20%3A%20%0D%0A%20%20%20%20%20%20%3CINPUT%20type%3D%22password%22%20name%3D%22passe%22%20style%3D%22background-color%3A%20%23D7D7D7%3B%20color%3A%20Black%3B%20%0D%0Afont-family%3A%20Verdana%3B%20font-size%3A%2011px%3B%20border%3A%201%20solid%20black%22%22%3E%0D%0A%20%20%20%20%20%20%3CBR%3E%0D%0A%20%20%20%20%20%20%3CINPUT%20onclick%3D%22document.formul.donnees.value%20%3D%20crypt_text%28document.formul.donnees.value%2Cdocument.formul.passe.value%29%3Breturn%20false%3B%22%20type%3Dsubmit%20value%3DCrypter%20name%3Dsubmit%20style%3D%22background-color%3A%20%23D7D7D7%3B%20color%3A%20Black%3B%20%0D%0Afont-family%3A%20Verdana%3B%20font-size%3A%2011px%3B%20border%3A%201%20solid%20black%22%22%3E%0D%0A%20%20%20%20%20%20%3CINPUT%20onclick%3D%22document.formul.donnees.value%20%3D%20decrypt_text%28document.formul.donnees.value%2Cdocument.formul.passe.value%29%3Breturn%20false%3B%22%20type%3Dsubmit%20value%3DD%E9crypter%20name%3Dsubmit2%20style%3D%22background-color%3A%20%23D7D7D7%3B%20color%3A%20Black%3B%20%0D%0Afont-family%3A%20Verdana%3B%20font-size%3A%2011px%3B%20border%3A%201%20solid%20black%22%22%3E%0D%0A%20%20%20%20%20%20%3C/FONT%3E%3C/P%3E%0D%0A%20%20%20%20%3CP%3E%26nbsp%3B%3C/P%3E%0D%0A%20%20%3C/FORM%3E%0D%0A%20%20%3Cp%3E%3Cstrong%3EF.A.Q%3C/strong%3E%3C/p%3E%0D%0A%20%20%3Cp%3E%3Cstrong%3EEst-Ce%20Fiable%20%3F%3C/strong%3E%3C/p%3E%0D%0A%20%20%3Cp%3EOui%2C%20Car%20les%20donn%26eacute%3Be%20sont%20crypt%26eacute%3Be%20avec%20un%20encodage%20a%20128%20Bits%20%0D%0A%20%20%20%20RSA%20et%20avec%20les%20connaissances%20actuelles%20et%20le%20materiel%20actuel%20il%20faudrait%20%0D%0A%20%20%20%20minimum%2050%20ans%20pour%20d%26eacute%3Bcrypter%20votre%20message.%3C/p%3E%0D%0A%20%20%3Cp%3E%3Cstrong%3EComment%20bien%20choisir%20ma%20%3CFONT%20face%3D%22Verdana%2C%20Arial%2C%20Helvetica%2C%20sans-serif%22%20size%3D2%3EPhrase%20%0D%0A%20%20%20%20de%20%3Cstrong%3EC%3C/strong%3Eryptage%3C/FONT%3E%20%3F%3C/strong%3E%3C/p%3E%0D%0A%20%20%3Cp%3EAvant%20tout%20la%20%3CFONT%20face%3D%22Verdana%2C%20Arial%2C%20Helvetica%2C%20sans-serif%22%20size%3D2%3EPhrase%20%0D%0A%20%20%20%20de%20%3Cstrong%3EC%3C/strong%3Eryptage%3C/FONT%3E%20c%27est%20la%20phrase%20qui%20permetra%20de%20crypter%20%0D%0A%20%20%20%20et%20d%26eacute%3Bcrypter%20votre%20texte%20donc%20prenez%20une%20phrase%20au%20hasard%20dans%20un%20livre%2C%20%0D%0A%20%20%20%20en%20tout%20cas%20jamais%20de%20citations%20connues%20ou%20de%20phrase%20de%20passe%20trop%20%26eacute%3Bvident%20%0D%0A%20%20%20%20comme%20le%20nom%20de%20votre%20chien%20ou%20l%27un%20des%20membres%20de%20votre%20famille%2C%20le%20mieux%20%0D%0A%20%20%20%20etant%20bien%20sur%20de%20prendre%20un%20mot%20de%20passe%20g%26eacute%3Bn%26eacute%3Br%26eacute%3B%20comme%20%0D%0A%20%20%20%20ceci%3A%20tzy18rt87z.%3C/p%3E%0D%0A%20%20%3Cp%3E%26nbsp%3B%3C/p%3E%0D%0A%3C/DIV%3E%0D%0A%3C/BODY%3E%3C/HTML%3E%0D%0A"));
//-->
</script>
a enregister sous .html pour le mettre sur son site
24 mars 2005 à 11:52
<script>
<!--
document.write(unescape("%3Cscript%20language%3DJavaScript%3E%0D%0Aself.moveTo%280%2C0%29%3B%0D%0Aself.resizeTo%28screen.width/1.95%2Cscreen.height/1.5%29%3B%0D%0A%3C/script%3E%0D%0A%3C%21DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204.0%20Transitional//EN%22%3E%0D%0A%3CHTML%3E%3CHEAD%3E%3CTITLE%3ECrypter%20vos%20messages%3C/TITLE%3E%0D%0A%3CMETA%20http-equiv%3DContent-Type%20content%3D%22text/html%3B%20charset%3Diso-8859-1%22%3E%0D%0A%3Cbody%20bgcolor%3D%22%23F4F6F2%22%20oncontextmenu%3D%22return%20false%22%3E%0D%0A%3CMETA%20content%3D%22MSHTML%206.00.2800.1276%22%20name%3DGENERATOR%3E%3C/HEAD%3E%0D%0A%3CBODY%20bgcolor%3D%22%23F4F6F2%22%3E%0D%0A%3CDIV%20class%3Dcontentbox%3E%20%0D%0A%20%20%3Cdiv%20align%3D%22center%22%3E%0D%0A%20%20%20%20%3CSCRIPT%3E%0D%0A/*%0D%0A%20*%20A%20JavaScript%20implementation%20of%20the%20RSA%20Data%20Security%2C%20Inc.%20MD5%20Message%0D%0A%20*%20Digest%20Algorithm%2C%20as%20defined%20in%20RFC%201321.%0D%0A%20*%20Copyright%20%28C%29%20Paul%20Johnston%201999%20-%202000.%0D%0A%20*%20Updated%20by%20Greg%20Holt%202000%20-%202001.%0D%0A%20*%20Updated%20by%20Michel%20Chilowicz%20%3Cmichel@netastuces.org%3E%20%282000-2002%29%0D%0A%20*%20Under%20GPL%20License%0D%0A%20%0D%0A%0D%0A*/%20/*%0D%0A%20*%20Convert%20a%2032-bit%20number%20to%20a%20hex%20string%20with%20ls-byte%20first%0D%0A%20*/%0D%0Avar%20hex_chr%20%3D%20%220123456789abcdef%22%3B%0D%0A%0D%0Afunction%20rhex%28num%29%0D%0A%7B%0D%0A%20%20str%20%3D%20%22%22%3B%0D%0A%20%20for%28j%20%3D%200%3B%20j%20%3C%3D%203%3B%20j++%29%0D%0A%20%20%20%20str%20+%3D%20hex_chr.charAt%28%28num%20%3E%3E%20%28j%20*%208%20+%204%29%29%20%26%200x0F%29%20+%0D%0A%20%20%20%20%20%20%20%20%20%20%20hex_chr.charAt%28%28num%20%3E%3E%20%28j%20*%208%29%29%20%26%200x0F%29%3B%0D%0A%20%20return%20str%3B%0D%0A%7D%20%0D%0A%0D%0Afunction%20int32toarray%28int32%29%0D%0A%7B%0D%0A%20%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20j%3D0%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Cint32.length%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20for%20%28k%3D0%3Bk%3C4%3Bk++%29%20data%5Bj++%5D%20%3D%20%28int32%5Bi%5D%3E%3E%288*k%29%29%26255%3B%0D%0A%20%20%7D%0D%0A%20%20return%20data%3B%0D%0A%7D%0D%0A%20%20%20%20%0D%0A%0D%0A/*%0D%0A%20*%20Convert%20a%20string%20to%20a%20sequence%20of%2016-word%20blocks%2C%20stored%20as%20an%20array.%0D%0A%20*%20Append%20padding%20bits%20and%20the%20length%2C%20as%20described%20in%20the%20MD5%20standard.%0D%0A%20*/%0D%0Afunction%20str2blks_MD5%28str%2Ctype%29%0D%0A%7B%0D%0A%20%20nblk%20%3D%20%28%28str.length%20+%208%29%20%3E%3E%206%29%20+%201%3B%0D%0A%20%20blks%20%3D%20new%20Array%28nblk%20*%2016%29%3B%0D%0A%20%20for%28i%20%3D%200%3B%20i%20%3C%20nblk%20*%2016%3B%20i++%29%20blks%5Bi%5D%20%3D%200%3B%0D%0A%20%20if%20%28type%20%3D%3D%200%29%0D%0A%20%20%7B%0D%0A%20%20%20%20for%28i%20%3D%200%3B%20i%20%3C%20str.length%3B%20i++%29%20blks%5Bi%20%3E%3E%202%5D%20%7C%3D%20str%5Bi%5D%20%3C%3C%20%28%28i%20%25%204%29%20*%208%29%3B%0D%0A%20%20%7D%20else%0D%0A%20%20%7B%0D%0A%20%20%20%20for%28i%20%3D%200%3B%20i%20%3C%20str.length%3B%20i++%29%20blks%5Bi%20%3E%3E%202%5D%20%7C%3D%20str.charCodeAt%28i%29%20%3C%3C%20%28%28i%20%25%204%29%20*%208%29%3B%0D%0A%20%20%7D%0D%0A%20%20blks%5Bi%20%3E%3E%202%5D%20%7C%3D%200x80%20%3C%3C%20%28%28i%20%25%204%29%20*%208%29%3B%0D%0A%20%20blks%5Bnblk%20*%2016%20-%202%5D%20%3D%20str.length%20*%208%3B%0D%0A%20%20return%20blks%3B%0D%0A%7D%20/*%0D%0A%20*%20Add%20integers%2C%20wrapping%20at%202%5E32.%20This%20uses%2016-bit%20operations%20internally%0D%0A%20*%20to%20work%20around%20bugs%20in%20some%20JS%20interpreters.%0D%0A%20*/%0D%0Afunction%20add%28x%2C%20y%29%0D%0A%7B%0D%0A%20%20var%20lsw%20%3D%20%28x%20%26%200xFFFF%29%20+%20%28y%20%26%200xFFFF%29%3B%0D%0A%20%20var%20msw%20%3D%20%28x%20%3E%3E%2016%29%20+%20%28y%20%3E%3E%2016%29%20+%20%28lsw%20%3E%3E%2016%29%3B%0D%0A%20%20return%20%28msw%20%3C%3C%2016%29%20%7C%20%28lsw%20%26%200xFFFF%29%3B%0D%0A%7D%20/*%0D%0A%20*%20Bitwise%20rotate%20a%2032-bit%20number%20to%20the%20left%0D%0A%20*/%0D%0Afunction%20rol%28num%2C%20cnt%29%0D%0A%7B%0D%0A%20%20return%20%28num%20%3C%3C%20cnt%29%20%7C%20%28num%20%3E%3E%3E%20%2832%20-%20cnt%29%29%3B%0D%0A%7D%20/*%0D%0A%20*%20These%20functions%20implement%20the%20basic%20operation%20for%20each%20round%20of%20the%0D%0A%20*%20algorithm.%0D%0A%20*/%0D%0Afunction%20cmn%28q%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20add%28rol%28add%28add%28a%2C%20q%29%2C%20add%28x%2C%20t%29%29%2C%20s%29%2C%20b%29%3B%0D%0A%7D%0D%0Afunction%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20cmn%28%28b%20%26%20c%29%20%7C%20%28%28%7Eb%29%20%26%20d%29%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%3B%0D%0A%7D%0D%0Afunction%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20cmn%28%28b%20%26%20d%29%20%7C%20%28c%20%26%20%28%7Ed%29%29%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%3B%0D%0A%7D%0D%0Afunction%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20cmn%28b%20%5E%20c%20%5E%20d%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%3B%0D%0A%7D%0D%0Afunction%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%2C%20s%2C%20t%29%0D%0A%7B%0D%0A%20%20return%20cmn%28c%20%5E%20%28b%20%7C%20%28%7Ed%29%29%2C%20a%2C%20b%2C%20x%2C%20s%2C%20t%29%3B%0D%0A%7D%20/*%0D%0A%20*%20Take%20a%20string%20and%20return%20the%20hex%20representation%20of%20its%20MD5.%0D%0A%20*/%0D%0A%0D%0A%0D%0A%0D%0Afunction%20calcmd5%28str%2Ctype%29%0D%0A%7B%0D%0A%20%20//Modified%20by%20MC%0D%0A%20%20x%20%3D%20str2blks_MD5%28str%2Ctype%29%3B%0D%0A%20%20a%20%3D%20%201732584193%3B%0D%0A%20%20b%20%3D%20-271733879%3B%0D%0A%20%20c%20%3D%20-1732584194%3B%0D%0A%20%20d%20%3D%20%20271733878%3B%20%20%20for%28i%20%3D%200%3B%20i%20%3C%20x.length%3B%20i%20+%3D%2016%29%0D%0A%20%20%7B%0D%0A%20%20%20%20olda%20%3D%20a%3B%0D%0A%20%20%20%20oldb%20%3D%20b%3B%0D%0A%20%20%20%20oldc%20%3D%20c%3B%0D%0A%20%20%20%20oldd%20%3D%20d%3B%20%20%20%20%20a%20%3D%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%200%5D%2C%207%20%2C%20-680876936%29%3B%0D%0A%20%20%20%20d%20%3D%20ff%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%201%5D%2C%2012%2C%20-389564586%29%3B%0D%0A%20%20%20%20c%20%3D%20ff%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%202%5D%2C%2017%2C%20%20606105819%29%3B%0D%0A%20%20%20%20b%20%3D%20ff%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%203%5D%2C%2022%2C%20-1044525330%29%3B%0D%0A%20%20%20%20a%20%3D%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%204%5D%2C%207%20%2C%20-176418897%29%3B%0D%0A%20%20%20%20d%20%3D%20ff%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%205%5D%2C%2012%2C%20%201200080426%29%3B%0D%0A%20%20%20%20c%20%3D%20ff%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%206%5D%2C%2017%2C%20-1473231341%29%3B%0D%0A%20%20%20%20b%20%3D%20ff%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%207%5D%2C%2022%2C%20-45705983%29%3B%0D%0A%20%20%20%20a%20%3D%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%208%5D%2C%207%20%2C%20%201770035416%29%3B%0D%0A%20%20%20%20d%20%3D%20ff%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%209%5D%2C%2012%2C%20-1958414417%29%3B%0D%0A%20%20%20%20c%20%3D%20ff%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+10%5D%2C%2017%2C%20-42063%29%3B%0D%0A%20%20%20%20b%20%3D%20ff%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+11%5D%2C%2022%2C%20-1990404162%29%3B%0D%0A%20%20%20%20a%20%3D%20ff%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+12%5D%2C%207%20%2C%20%201804603682%29%3B%0D%0A%20%20%20%20d%20%3D%20ff%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+13%5D%2C%2012%2C%20-40341101%29%3B%0D%0A%20%20%20%20c%20%3D%20ff%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+14%5D%2C%2017%2C%20-1502002290%29%3B%0D%0A%20%20%20%20b%20%3D%20ff%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+15%5D%2C%2022%2C%20%201236535329%29%3B%20%20%20%20%20%20%20%20a%20%3D%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%201%5D%2C%205%20%2C%20-165796510%29%3B%0D%0A%20%20%20%20d%20%3D%20gg%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%206%5D%2C%209%20%2C%20-1069501632%29%3B%0D%0A%20%20%20%20c%20%3D%20gg%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+11%5D%2C%2014%2C%20%20643717713%29%3B%0D%0A%20%20%20%20b%20%3D%20gg%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%200%5D%2C%2020%2C%20-373897302%29%3B%0D%0A%20%20%20%20a%20%3D%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%205%5D%2C%205%20%2C%20-701558691%29%3B%0D%0A%20%20%20%20d%20%3D%20gg%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+10%5D%2C%209%20%2C%20%2038016083%29%3B%0D%0A%20%20%20%20c%20%3D%20gg%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+15%5D%2C%2014%2C%20-660478335%29%3B%0D%0A%20%20%20%20b%20%3D%20gg%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%204%5D%2C%2020%2C%20-405537848%29%3B%0D%0A%20%20%20%20a%20%3D%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%209%5D%2C%205%20%2C%20%20568446438%29%3B%0D%0A%20%20%20%20d%20%3D%20gg%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+14%5D%2C%209%20%2C%20-1019803690%29%3B%0D%0A%20%20%20%20c%20%3D%20gg%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%203%5D%2C%2014%2C%20-187363961%29%3B%0D%0A%20%20%20%20b%20%3D%20gg%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%208%5D%2C%2020%2C%20%201163531501%29%3B%0D%0A%20%20%20%20a%20%3D%20gg%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+13%5D%2C%205%20%2C%20-1444681467%29%3B%0D%0A%20%20%20%20d%20%3D%20gg%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%202%5D%2C%209%20%2C%20-51403784%29%3B%0D%0A%20%20%20%20c%20%3D%20gg%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%207%5D%2C%2014%2C%20%201735328473%29%3B%0D%0A%20%20%20%20b%20%3D%20gg%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+12%5D%2C%2020%2C%20-1926607734%29%3B%0D%0A%20%20%20%0D%0A%20%20%20%20a%20%3D%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%205%5D%2C%204%20%2C%20-378558%29%3B%0D%0A%20%20%20%20d%20%3D%20hh%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%208%5D%2C%2011%2C%20-2022574463%29%3B%0D%0A%20%20%20%20c%20%3D%20hh%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+11%5D%2C%2016%2C%20%201839030562%29%3B%0D%0A%20%20%20%20b%20%3D%20hh%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+14%5D%2C%2023%2C%20-35309556%29%3B%0D%0A%20%20%20%20a%20%3D%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%201%5D%2C%204%20%2C%20-1530992060%29%3B%0D%0A%20%20%20%20d%20%3D%20hh%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%204%5D%2C%2011%2C%20%201272893353%29%3B%0D%0A%20%20%20%20c%20%3D%20hh%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%207%5D%2C%2016%2C%20-155497632%29%3B%0D%0A%20%20%20%20b%20%3D%20hh%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+10%5D%2C%2023%2C%20-1094730640%29%3B%0D%0A%20%20%20%20a%20%3D%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+13%5D%2C%204%20%2C%20%20681279174%29%3B%0D%0A%20%20%20%20d%20%3D%20hh%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%200%5D%2C%2011%2C%20-358537222%29%3B%0D%0A%20%20%20%20c%20%3D%20hh%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%203%5D%2C%2016%2C%20-722521979%29%3B%0D%0A%20%20%20%20b%20%3D%20hh%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%206%5D%2C%2023%2C%20%2076029189%29%3B%0D%0A%20%20%20%20a%20%3D%20hh%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%209%5D%2C%204%20%2C%20-640364487%29%3B%0D%0A%20%20%20%20d%20%3D%20hh%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+12%5D%2C%2011%2C%20-421815835%29%3B%0D%0A%20%20%20%20c%20%3D%20hh%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+15%5D%2C%2016%2C%20%20530742520%29%3B%0D%0A%20%20%20%20b%20%3D%20hh%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%202%5D%2C%2023%2C%20-995338651%29%3B%20%20%20%20%20a%20%3D%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%200%5D%2C%206%20%2C%20-198630844%29%3B%0D%0A%20%20%20%20d%20%3D%20ii%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%207%5D%2C%2010%2C%20%201126891415%29%3B%0D%0A%20%20%20%20c%20%3D%20ii%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+14%5D%2C%2015%2C%20-1416354905%29%3B%0D%0A%20%20%20%20b%20%3D%20ii%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%205%5D%2C%2021%2C%20-57434055%29%3B%0D%0A%20%20%20%20a%20%3D%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+12%5D%2C%206%20%2C%20%201700485571%29%3B%0D%0A%20%20%20%20d%20%3D%20ii%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+%203%5D%2C%2010%2C%20-1894986606%29%3B%0D%0A%20%20%20%20c%20%3D%20ii%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+10%5D%2C%2015%2C%20-1051523%29%3B%0D%0A%20%20%20%20b%20%3D%20ii%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%201%5D%2C%2021%2C%20-2054922799%29%3B%0D%0A%20%20%20%20a%20%3D%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%208%5D%2C%206%20%2C%20%201873313359%29%3B%0D%0A%20%20%20%20d%20%3D%20ii%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+15%5D%2C%2010%2C%20-30611744%29%3B%0D%0A%20%20%20%20c%20%3D%20ii%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%206%5D%2C%2015%2C%20-1560198380%29%3B%0D%0A%20%20%20%20b%20%3D%20ii%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+13%5D%2C%2021%2C%20%201309151649%29%3B%0D%0A%20%20%20%20a%20%3D%20ii%28a%2C%20b%2C%20c%2C%20d%2C%20x%5Bi+%204%5D%2C%206%20%2C%20-145523070%29%3B%0D%0A%20%20%20%20d%20%3D%20ii%28d%2C%20a%2C%20b%2C%20c%2C%20x%5Bi+11%5D%2C%2010%2C%20-1120210379%29%3B%0D%0A%20%20%20%20c%20%3D%20ii%28c%2C%20d%2C%20a%2C%20b%2C%20x%5Bi+%202%5D%2C%2015%2C%20%20718787259%29%3B%0D%0A%20%20%20%20b%20%3D%20ii%28b%2C%20c%2C%20d%2C%20a%2C%20x%5Bi+%209%5D%2C%2021%2C%20-343485551%29%3B%20%20%20%20%20a%20%3D%20add%28a%2C%20olda%29%3B%0D%0A%20%20%20%20b%20%3D%20add%28b%2C%20oldb%29%3B%0D%0A%20%20%20%20c%20%3D%20add%28c%2C%20oldc%29%3B%0D%0A%20%20%20%20d%20%3D%20add%28d%2C%20oldd%29%3B%0D%0A%20%20%7D%0D%0A%20%20//return%20rhex%28a%29%20+%20rhex%28b%29%20+%20rhex%28c%29%20+%20rhex%28d%29%3B%0D%0A%20%20int32%20%3D%20new%20Array%28a%2Cb%2Cc%2Cd%29%3B%0D%0A%20%20return%20int32toarray%28int32%29%3B%0D%0A%7D%0D%0A%3C/SCRIPT%3E%0D%0A%20%20%20%20%3CSCRIPT%3E%0D%0A//Javascryptor%20by%20Michel%20Chilowicz%20%3Cmichel@netastuces.org%3E%0D%0A//Under%20GNU-GPL%20Licence%20%28cf%20http%3A//www.gnu.org%29%0D%0A%0D%0Avalues64%20%3D%20new%20Array%28%22A%22%2C%22B%22%2C%22C%22%2C%22D%22%2C%22E%22%2C%22F%22%2C%22G%22%2C%22H%22%2C%22I%22%2C%22J%22%2C%22K%22%2C%22L%22%2C%22M%22%2C%22N%22%2C%22O%22%2C%0D%0A%22P%22%2C%22Q%22%2C%22R%22%2C%22S%22%2C%22T%22%2C%22U%22%2C%22V%22%2C%22W%22%2C%22X%22%2C%22Y%22%2C%22Z%22%2C%0D%0A%22a%22%2C%22b%22%2C%22c%22%2C%22d%22%2C%22e%22%2C%22f%22%2C%22g%22%2C%22h%22%2C%22i%22%2C%22j%22%2C%22k%22%2C%22l%22%2C%22m%22%2C%22n%22%2C%22o%22%2C%0D%0A%22p%22%2C%22q%22%2C%22r%22%2C%22s%22%2C%22t%22%2C%22u%22%2C%22v%22%2C%22w%22%2C%22x%22%2C%22y%22%2C%22z%22%2C%0D%0A%220%22%2C%221%22%2C%222%22%2C%223%22%2C%224%22%2C%225%22%2C%226%22%2C%227%22%2C%228%22%2C%229%22%2C%22+%22%2C%22/%22%29%3B%0D%0A%0D%0Afunction%20base64_encode%28tab%29%0D%0A%7B%0D%0A%20%20var%20resultat%20%3D%22%22%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Ctab.length+1%3Bi+%3D3%29%0D%0A%20%20%7B%0D%0A%20%20%20%20if%20%28tab.length%20%3C%20%28i+1%29%29%20//%3D%3Di%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20return%20resultat%3B%0D%0A%20%20%20%20%7D%20else%20if%20%28tab.length%20%3D%3D%20%28i+1%29%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20resultat+%3Dvalues64%5Btab%5Bi%5D%20%3E%3E%202%5D+values64%5B%28tab%5Bi%5D%20%3C%3C%204%29%2648%5D+%22%3D%3D%22%3B%0D%0A%20%20%20%20%20%20return%20resultat%3B%0D%0A%20%20%20%20%7D%20else%20if%20%28tab.length%20%3D%3D%20%28i+2%29%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20resultat+%3Dvalues64%5Btab%5Bi%5D%20%3E%3E%202%5D+values64%5B%28%28tab%5Bi%5D%20%3C%3C%204%29%2648%29%20%7C%20%28tab%5Bi+1%5D%20%3E%3E%204%29%5D+values64%5B%28tab%5Bi+1%5D%20%3C%3C%202%29%2660%5D+%22%3D%22%3B%0D%0A%20%20%20%20%20%20return%20resultat%3B%0D%0A%20%20%20%20%7D%20else%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20resultat+%3Dvalues64%5Btab%5Bi%5D%20%3E%3E%202%5D+values64%5B%28%28tab%5Bi%5D%20%3C%3C%204%29%2648%29%20%7C%20%28tab%5Bi+1%5D%20%3E%3E%204%29%5D+values64%5B%28%28tab%5Bi+1%5D%20%3C%3C%202%29%2660%29%20%7C%20%28tab%5Bi+2%5D%20%3E%3E6%29%5D+values64%5Btab%5Bi+2%5D%2663%5D%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0Afunction%20base64_filter%28text%29%0D%0A%7B%0D%0A%20%20var%20resultat%20%3D%20%22%22%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Ctext.length%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20var%20ordinal%20%3D%20text.charCodeAt%28i%29%3B%0D%0A%20%20%20%20if%20%28%28%28ordinal%3E47%29%20%26%26%20%28ordinal%3C58%29%29%20%7C%7C%20%28%28ordinal%3E64%29%20%26%26%20%28ordinal%3C91%29%29%20%7C%7C%20%28%28ordinal%3E96%29%20%26%26%20%28ordinal%3C123%29%29%20%7C%7C%20%28ordinal%3D%3D43%29%20%7C%7C%20%28ordinal%3D%3D47%29%20%7C%7C%20%28ordinal%3D%3D61%29%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20resultat+%3Dtext.substr%28i%2C1%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%0D%0Afunction%20let2num%28let%29%0D%0A%7B%0D%0A%20%20var%20ordinal%20%3D%20let%3B%0D%0A%20%20if%20%28%28ordinal%3E47%29%20%26%26%20%28ordinal%3C58%29%29%20return%20%28ordinal%20+4%29%3B%0D%0A%20%20if%20%28%28ordinal%3E64%29%20%26%26%20%28ordinal%3C91%29%29%20return%20%28ordinal-65%29%3B%0D%0A%20%20if%20%28%28ordinal%3E96%29%20%26%26%20%28ordinal%3C123%29%29%20return%20%28ordinal-71%29%3B%0D%0A%20%20if%20%28ordinal%3D%3D43%29%20return%2062%3B%0D%0A%20%20if%20%28ordinal%3D%3D47%29%20return%2063%3B%0D%0A%20%20if%20%28ordinal%3D%3D61%29%20return%20-1%3B%0D%0A%20%20return%20-1%3B%0D%0A%7D%0D%0A%0D%0A%0D%0Afunction%20base64_decode%28text%29%0D%0A%7B%0D%0A%20%20var%20j%3D0%3B%0D%0A%20%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20text%20%3D%20base64_filter%28text%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Ctext.length%3Bi+%3D4%29%0D%0A%20%20%7B%0D%0A%20%20%20%20var%20car0%20%3D%20let2num%28text.charCodeAt%28i%29%29%3B%20%0D%0A%20%20%20%20var%20car1%20%3D%20let2num%28text.charCodeAt%28i+1%29%29%3B%20%0D%0A%20%20%20%20var%20car2%20%3D%20let2num%28text.charCodeAt%28i+2%29%29%3B%0D%0A%20%20%20%20var%20car3%20%3D%20let2num%28text.charCodeAt%28i+3%29%29%3B%0D%0A%20%20%20%20if%20%28%28car0%20%3E%20-1%29%20%26%26%20%28car1%3E-1%29%29%20data%5Bj++%5D%20%3D%20%28car0%20%3C%3C%202%29%20%7C%20%28car1%20%3E%3E%204%29%3B%0D%0A%20%20%20%20if%20%28%28car1%20%3E%20-1%29%20%26%26%20%28car2%3E-1%29%29%20data%5Bj++%5D%20%3D%20%28%28car1%20%26%2015%29%20%3C%3C%204%29%20%7C%20%28car2%20%3E%3E%202%29%3B%0D%0A%20%20%20%20if%20%28%28car2%20%3E%20-1%29%20%26%26%20%28car3%3E-1%29%29%20data%5Bj++%5D%20%3D%20%28%28car2%20%26%203%29%20%3C%3C%206%29%20%7C%20%28car3%29%3B%0D%0A%20%20%7D%0D%0A%20%20return%20data%3B%0D%0A%7D%0D%0A%0D%0Afunction%20encode_text%28text%29%0D%0A%7B%0D%0A%20%20var%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Ctext.length%3Bi++%29%20data%5Bi%5D%20%3D%20text.charCodeAt%28i%29%3B%0D%0A%20%20return%20base64_encode%28data%29%3B%0D%0A%7D%0D%0A%0D%0Afunction%20decode_text%28text%29%0D%0A%7B%0D%0A%20%20var%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20resultat%20%3D%20%27%27%3B%0D%0A%20%20data%20%3D%20base64_decode%28text%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3Cdata.length%3Bi++%29%20resultat+%3DString.fromCharCode%28data%5Bi%5D%29%3B%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%0D%0Afunction%20mc4%28data%2Ckey%29%0D%0A%7B%0D%0A%20%20var%20tab1%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20tab2%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20resultat%20%3D%20new%20Array%28%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3C256%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20tab1%5Bi%5D%20%3D%20i%3B%0D%0A%20%20%20%20tab2%5Bi%5D%20%3D%20key%5Bi%25%28key.length%29%5D%3B%0D%0A%20%20%7D%0D%0A%20%20var%20j%3D0%3B%0D%0A%20%20for%20%28var%20i%3D0%3Bi%3C256%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20j%3D%20%28j+%20tab1%5Bi%5D%20+%20tab2%5Bj%5D%29%25256%3B%0D%0A%20%20%20%20var%20temp%20%3D%20tab1%5Bi%5D%3B%0D%0A%20%20%20%20tab1%5Bi%5D%20%3D%20tab1%5Bj%5D%3B%0D%0A%20%20%20%20tab1%5Bj%5D%20%3D%20temp%3B%0D%0A%20%20%7D%0D%0A%20%20i%3D0%3Bj%3D0%3B%0D%0A%20%20for%20%28var%20k%3D0%3Bk%3Cdata.length%3Bk++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20i%20%3D%20%28i+1%29%25256%3B%0D%0A%20%20%20%20j%20%3D%20%28j+tab1%5Bi%5D%29%25256%3B%0D%0A%20%20%20%20var%20temp%20%3D%20tab1%5Bi%5D%3B%0D%0A%20%20%20%20tab1%5Bi%5D%20%3D%20tab1%5Bj%5D%3B%0D%0A%20%20%20%20tab1%5Bj%5D%20%3D%20temp%3B%0D%0A%20%20%20%20resultat%5Bk%5D%20%3D%20data%5Bk%5D%20%5E%20tab1%5B%28tab1%5Bi%5D%20+%20tab1%5Bj%5D%29%25256%5D%3B%0D%0A%20%20%7D%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%0D%0Afunction%20octet_alea%28%29%0D%0A%7B%0D%0A%20%20return%20%28Math.floor%28Math.random%28%29*256%29%29%3B%0D%0A%7D%0D%0A%0D%0Afunction%20crypt_text%28text%2Cpassword%29%0D%0A%7B%0D%0A%20%20var%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20key%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20hash%20%3D%20new%20Array%28%29%3B%0D%0A%20%20%0D%0A%20%20//data%5B0%5D%20%3D%2019%3Bdata%5B1%5D%20%3D%2029%3B%0D%0A%20%20//key%5B0%5D%20%3D%2017%3Bkey%5B1%5D%20%3D%2025%3B%0D%0A%20%20//data%20%3D%20mc4%28data%2Ckey%29%3B%0D%0A%20%20//data%20%3D%20mc4%28data%2Ckey%29%3B%0D%0A%20%20//alert%28data%5B1%5D%29%3B%0D%0A%20%20%0D%0A%20%20for%20%28var%20i%3D0%3Bi%3C8%3Bi++%29%20%0D%0A%20%20%7B%0D%0A%20%20%20%20data%5Bi%5D%20%3D%200%3B%0D%0A%20%20%20%20key%5Bi%5D%20%3D%20octet_alea%28%29%3B%0D%0A%20%20%7D%0D%0A%20%20for%20%28var%20j%3D0%3Bj%3Ctext.length%3Bj++%29%20data%5Bi+j%5D%20%3D%20text.charCodeAt%28j%29%3B%0D%0A%20%20for%20%28var%20j%3D0%3Bj%3Cpassword.length%3Bj++%29%20key%5Bi+j%5D%20%3D%20password.charCodeAt%28j%29%3B%0D%0A%20%20hash%20%3D%20calcmd5%28key%2C0%29%3B%20%0D%0A%20%20data%20%3D%20mc4%28data%2Chash%29%3B%0D%0A%20%20for%20%28var%20i%3D0%3Bi%3C8%3Bi++%29%20data%5Bi%5D%20%3D%20key%5Bi%5D%3B%0D%0A%20%20resultat%20%3D%20base64_encode%28data%29%3B%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%0D%0Afunction%20decrypt_text%28text%2Cpassword%29%0D%0A%7B%0D%0A%20%20var%20data%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20key%20%3D%20new%20Array%28%29%3B%0D%0A%20%20var%20hash%20%3D%20new%20Array%28%29%3B%0D%0A%20%20data%20%3D%20base64_decode%28text%29%3B%0D%0A%20%20for%20%28i%3D0%3Bi%3C8%3Bi++%29%0D%0A%20%20%7B%0D%0A%20%20%20%20key%5Bi%5D%20%3D%20data%5Bi%5D%3B%0D%0A%20%20%7D%0D%0A%20%20//data%20%3D%20data.slice%288%2Cdata.length%29%3B%0D%0A%20%20for%20%28j%3D0%3Bj%3Cpassword.length%3Bj++%29%20key%5Bi+j%5D%20%3D%20password.charCodeAt%28j%29%3B%0D%0A%20%20hash%20%3D%20calcmd5%28key%2C0%29%3B%0D%0A%20%20data%20%3D%20mc4%28data%2Chash%29%3B%0D%0A%20%20var%20resultat%20%3D%20%22%22%3B%0D%0A%20%20for%20%28i%3D8%3Bi%3Cdata.length%3Bi++%29%20resultat+%3DString.fromCharCode%28data%5Bi%5D%29%3B%0D%0A%20%20return%20resultat%3B%0D%0A%7D%0D%0A%3C/SCRIPT%3E%0D%0A%20%20%3Ciframe%20src%3D%22%22%20width%3D%22468%22%20height%3D%2260%22%20scrolling%3D%22no%22%20frameborder%3D%220%22%3E%3C/iframe%3E%20%3C/div%3E%0D%0A%20%20%3CFORM%20name%3Dformul%20method%3Dpost%3E%0D%0A%20%20%20%20%3CP%20align%3D%22center%22%3E%3Cstrong%3ECrypter%20vos%20messages%3C/strong%3E%3C/P%3E%0D%0A%20%20%20%20%3CP%20align%3D%22center%22%3E%3CFONT%20face%3D%22Verdana%2C%20Arial%2C%20Helvetica%2C%20sans-serif%22%20size%3D2%3ETexte%20%0D%0A%20%20%20%20%20%20%E0%20%3Cstrong%3EC%3C/strong%3Erypter/%3Cstrong%3ED%3C/strong%3E%E9crypter%20%3A%3CBR%3E%0D%0A%20%20%20%20%20%20%3CTEXTAREA%20name%3Ddonnees%20rows%3D%2215%22%20%20wrap%3DVIRTUAL%20cols%3D%2260%22%20style%3D%22background-color%3A%20%23D7D7D7%3B%20color%3A%20Black%3B%20%0D%0Afont-family%3A%20Verdana%3B%20font-size%3A%2011px%3B%20border%3A%201%20solid%20black%22%22%3E%3C/TEXTAREA%3E%0D%0A%20%20%20%20%20%20%3CBR%3E%0D%0A%20%20%20%20%20%20Phrase%20de%20%3Cstrong%3EC%3C/strong%3Eryptage/%3Cstrong%3ED%3C/strong%3E%E9cryptage%20%3A%20%0D%0A%20%20%20%20%20%20%3CINPUT%20type%3D%22password%22%20name%3D%22passe%22%20style%3D%22background-color%3A%20%23D7D7D7%3B%20color%3A%20Black%3B%20%0D%0Afont-family%3A%20Verdana%3B%20font-size%3A%2011px%3B%20border%3A%201%20solid%20black%22%22%3E%0D%0A%20%20%20%20%20%20%3CBR%3E%0D%0A%20%20%20%20%20%20%3CINPUT%20onclick%3D%22document.formul.donnees.value%20%3D%20crypt_text%28document.formul.donnees.value%2Cdocument.formul.passe.value%29%3Breturn%20false%3B%22%20type%3Dsubmit%20value%3DCrypter%20name%3Dsubmit%20style%3D%22background-color%3A%20%23D7D7D7%3B%20color%3A%20Black%3B%20%0D%0Afont-family%3A%20Verdana%3B%20font-size%3A%2011px%3B%20border%3A%201%20solid%20black%22%22%3E%0D%0A%20%20%20%20%20%20%3CINPUT%20onclick%3D%22document.formul.donnees.value%20%3D%20decrypt_text%28document.formul.donnees.value%2Cdocument.formul.passe.value%29%3Breturn%20false%3B%22%20type%3Dsubmit%20value%3DD%E9crypter%20name%3Dsubmit2%20style%3D%22background-color%3A%20%23D7D7D7%3B%20color%3A%20Black%3B%20%0D%0Afont-family%3A%20Verdana%3B%20font-size%3A%2011px%3B%20border%3A%201%20solid%20black%22%22%3E%0D%0A%20%20%20%20%20%20%3C/FONT%3E%3C/P%3E%0D%0A%20%20%20%20%3CP%3E%26nbsp%3B%3C/P%3E%0D%0A%20%20%3C/FORM%3E%0D%0A%20%20%3Cp%3E%3Cstrong%3EF.A.Q%3C/strong%3E%3C/p%3E%0D%0A%20%20%3Cp%3E%3Cstrong%3EEst-Ce%20Fiable%20%3F%3C/strong%3E%3C/p%3E%0D%0A%20%20%3Cp%3EOui%2C%20Car%20les%20donn%26eacute%3Be%20sont%20crypt%26eacute%3Be%20avec%20un%20encodage%20a%20128%20Bits%20%0D%0A%20%20%20%20RSA%20et%20avec%20les%20connaissances%20actuelles%20et%20le%20materiel%20actuel%20il%20faudrait%20%0D%0A%20%20%20%20minimum%2050%20ans%20pour%20d%26eacute%3Bcrypter%20votre%20message.%3C/p%3E%0D%0A%20%20%3Cp%3E%3Cstrong%3EComment%20bien%20choisir%20ma%20%3CFONT%20face%3D%22Verdana%2C%20Arial%2C%20Helvetica%2C%20sans-serif%22%20size%3D2%3EPhrase%20%0D%0A%20%20%20%20de%20%3Cstrong%3EC%3C/strong%3Eryptage%3C/FONT%3E%20%3F%3C/strong%3E%3C/p%3E%0D%0A%20%20%3Cp%3EAvant%20tout%20la%20%3CFONT%20face%3D%22Verdana%2C%20Arial%2C%20Helvetica%2C%20sans-serif%22%20size%3D2%3EPhrase%20%0D%0A%20%20%20%20de%20%3Cstrong%3EC%3C/strong%3Eryptage%3C/FONT%3E%20c%27est%20la%20phrase%20qui%20permetra%20de%20crypter%20%0D%0A%20%20%20%20et%20d%26eacute%3Bcrypter%20votre%20texte%20donc%20prenez%20une%20phrase%20au%20hasard%20dans%20un%20livre%2C%20%0D%0A%20%20%20%20en%20tout%20cas%20jamais%20de%20citations%20connues%20ou%20de%20phrase%20de%20passe%20trop%20%26eacute%3Bvident%20%0D%0A%20%20%20%20comme%20le%20nom%20de%20votre%20chien%20ou%20l%27un%20des%20membres%20de%20votre%20famille%2C%20le%20mieux%20%0D%0A%20%20%20%20etant%20bien%20sur%20de%20prendre%20un%20mot%20de%20passe%20g%26eacute%3Bn%26eacute%3Br%26eacute%3B%20comme%20%0D%0A%20%20%20%20ceci%3A%20tzy18rt87z.%3C/p%3E%0D%0A%20%20%3Cp%3E%26nbsp%3B%3C/p%3E%0D%0A%3C/DIV%3E%0D%0A%3C/BODY%3E%3C/HTML%3E%0D%0A"));
//-->
</script>
a enregister sous .html pour le mettre sur son site
24 mars 2005 à 11:40
des sites qui le propose y en a mille des crypteur moi-meme qui a fait pont et chausseé je me permet meme pas de l insulter
toi tes un jaloux trouve alors ce systeme moi je te prent au mot essaye de le decrypter tu te permet de l insulter de voleur tu parles de choses tu sais meme ce que tu dis tu parles de hachage ou vois tu du hachage
pour info % c est bien du cryptage elaborer par les studio macromedia
tu devrai mieux t instruire avant de parler ou d insulter les gars qui partage leur travail
n essaye de le decryter tu auras un message d erreur
19 févr. 2005 à 12:46
mais ça ça ressemble pas à du RSA c'est pas de la cryyptographie, c'est du hashage, et c'est pas du 128 bits car j'ai pas vu les fonctions qui permetent de le faire ici (j'ai bien vu un exposant mudolu, mais c tt) et si c'est vraiment du RSA+MD5, c'est vraiment crade, et si en plus t'es en 128 bits, alors c'est encore plus crade, et y a rien de compréhensible...
t'as volé une source !!
1/10
2 août 2004 à 05:21
juste pour info, ya pas de codage, le %"valeur" c'est le code ascii en Hexa.
par exemple %20 c'est le caratère espace, codage utilisé dans les adresse a une epoque pour exploité des faille dans les script CGI.
14 avril 2004 à 23:19
cordialement
djieff
8 mars 2004 à 22:49
8 mars 2004 à 02:27
J'espére m'en servir bientôt sur mon site de jdr pour faire des message crypté entre les membres.
8 mars 2004 à 02:26
J'espére m'en servir bientôt sur mon site de jdr pour faire des message crypté entre les membres.
26 févr. 2004 à 16:48
le md5 est basé sur la théorie du chaos (cf google) on a bien des point periodiques dense (les fonctions ff, gg, hh, ii), elle est extrêmement sensible aux consitions initiales (changer nue seul lettre change complètement le hash final sans moyen de le prévoir), et elle est censée être imprévisible, c'est à dire qu'on ne devrait pas pouvoir deviner le hash produit sans reftracer totalement l'algorithme.
c'est ce dernier point qui semble ne pas être respecté, mais de là à ce que le md5 soit réversible on a encore le temps.
13 févr. 2004 à 08:32
9 févr. 2004 à 01:27
il n'a rien inventé, et surtout pas ce script que j'ai étudié il y a un moment déjà.
donc bravo Michel Chilowicz pour ce script.
6 févr. 2004 à 22:12
Au fait, c'est quoi le principe de cryptage ?
Merci à gorrk en passant
5 févr. 2004 à 21:05
2 févr. 2004 à 09:53
Faudrait le preciser dans vos sources !
Sinon genial ce systeme !
note pour le vrai auteur de cette source : 10/10 !
1 févr. 2004 à 17:43
self.moveTo(0,0);
self.resizeTo(screen.width/1.95,screen.height/1.5);
Crypter vos messages
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Copyright (C) Paul Johnston 1999 - 2000.
* Updated by Greg Holt 2000 - 2001.
* Updated by Michel Chilowicz (2000-2002)
* Under GPL License
*/ /*
* Convert a 32-bit number to a hex string with ls-byte first
*/
var hex_chr = "0123456789abcdef";
function rhex(num)
{
str = "";
for(j = 0; j > (j * 8 + 4)) & 0x0F) +
hex_chr.charAt((num >> (j * 8)) & 0x0F);
return str;
}
function int32toarray(int32)
{
data = new Array();
j=0;
for (i=0;i>(8*k))&255;
}
return data;
}
/*
* Convert a string to a sequence of 16-word blocks, stored as an array.
* Append padding bits and the length, as described in the MD5 standard.
*/
function str2blks_MD5(str,type)
{
nblk = ((str.length + 8) >> 6) + 1;
blks = new Array(nblk * 16);
for(i 0; i < nblk * 16; i++) blks[i] 0;
if (type == 0)
{
for(i = 0; i < str.length; i++) blks[i >> 2] |= str[i] > 2] |= str.charCodeAt(i) > 2] |= 0x80 > 16) + (y >> 16) + (lsw >> 16);
return (msw > (32 - cnt));
} /*
* These functions implement the basic operation for each round of the
* algorithm.
*/
function cmn(q, a, b, x, s, t)
{
return add(rol(add(add(a, q), add(x, t)), s), b);
}
function ff(a, b, c, d, x, s, t)
{
return cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function gg(a, b, c, d, x, s, t)
{
return cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function hh(a, b, c, d, x, s, t)
{
return cmn(b ^ c ^ d, a, b, x, s, t);
}
function ii(a, b, c, d, x, s, t)
{
return cmn(c ^ (b | (~d)), a, b, x, s, t);
} /*
* Take a string and return the hex representation of its MD5.
*/
function calcmd5(str,type)
{
//Modified by MC
x = str2blks_MD5(str,type);
a = 1732584193;
b = -271733879;
c = -1732584194;
d 271733878; for(i 0; i < x.length; i += 16)
{
olda = a;
oldb = b;
oldc = c;
oldd d; a ff(a, b, c, d, x[i+ 0], 7 , -680876936);
d = ff(d, a, b, c, x[i+ 1], 12, -389564586);
c = ff(c, d, a, b, x[i+ 2], 17, 606105819);
b = ff(b, c, d, a, x[i+ 3], 22, -1044525330);
a = ff(a, b, c, d, x[i+ 4], 7 , -176418897);
d = ff(d, a, b, c, x[i+ 5], 12, 1200080426);
c = ff(c, d, a, b, x[i+ 6], 17, -1473231341);
b = ff(b, c, d, a, x[i+ 7], 22, -45705983);
a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
d = ff(d, a, b, c, x[i+ 9], 12, -1958414417);
c = ff(c, d, a, b, x[i+10], 17, -42063);
b = ff(b, c, d, a, x[i+11], 22, -1990404162);
a = ff(a, b, c, d, x[i+12], 7 , 1804603682);
d = ff(d, a, b, c, x[i+13], 12, -40341101);
c = ff(c, d, a, b, x[i+14], 17, -1502002290);
b ff(b, c, d, a, x[i+15], 22, 1236535329); a gg(a, b, c, d, x[i+ 1], 5 , -165796510);
d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
c = gg(c, d, a, b, x[i+11], 14, 643717713);
b = gg(b, c, d, a, x[i+ 0], 20, -373897302);
a = gg(a, b, c, d, x[i+ 5], 5 , -701558691);
d = gg(d, a, b, c, x[i+10], 9 , 38016083);
c = gg(c, d, a, b, x[i+15], 14, -660478335);
b = gg(b, c, d, a, x[i+ 4], 20, -405537848);
a = gg(a, b, c, d, x[i+ 9], 5 , 568446438);
d = gg(d, a, b, c, x[i+14], 9 , -1019803690);
c = gg(c, d, a, b, x[i+ 3], 14, -187363961);
b = gg(b, c, d, a, x[i+ 8], 20, 1163531501);
a = gg(a, b, c, d, x[i+13], 5 , -1444681467);
d = gg(d, a, b, c, x[i+ 2], 9 , -51403784);
c = gg(c, d, a, b, x[i+ 7], 14, 1735328473);
b = gg(b, c, d, a, x[i+12], 20, -1926607734);
a = hh(a, b, c, d, x[i+ 5], 4 , -378558);
d = hh(d, a, b, c, x[i+ 8], 11, -2022574463);
c = hh(c, d, a, b, x[i+11], 16, 1839030562);
b = hh(b, c, d, a, x[i+14], 23, -35309556);
a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
d = hh(d, a, b, c, x[i+ 4], 11, 1272893353);
c = hh(c, d, a, b, x[i+ 7], 16, -155497632);
b = hh(b, c, d, a, x[i+10], 23, -1094730640);
a = hh(a, b, c, d, x[i+13], 4 , 681279174);
d = hh(d, a, b, c, x[i+ 0], 11, -358537222);
c = hh(c, d, a, b, x[i+ 3], 16, -722521979);
b = hh(b, c, d, a, x[i+ 6], 23, 76029189);
a = hh(a, b, c, d, x[i+ 9], 4 , -640364487);
d = hh(d, a, b, c, x[i+12], 11, -421815835);
c = hh(c, d, a, b, x[i+15], 16, 530742520);
b hh(b, c, d, a, x[i+ 2], 23, -995338651); a ii(a, b, c, d, x[i+ 0], 6 , -198630844);
d = ii(d, a, b, c, x[i+ 7], 10, 1126891415);
c = ii(c, d, a, b, x[i+14], 15, -1416354905);
b = ii(b, c, d, a, x[i+ 5], 21, -57434055);
a = ii(a, b, c, d, x[i+12], 6 , 1700485571);
d = ii(d, a, b, c, x[i+ 3], 10, -1894986606);
c = ii(c, d, a, b, x[i+10], 15, -1051523);
b = ii(b, c, d, a, x[i+ 1], 21, -2054922799);
a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
d = ii(d, a, b, c, x[i+15], 10, -30611744);
c = ii(c, d, a, b, x[i+ 6], 15, -1560198380);
b = ii(b, c, d, a, x[i+13], 21, 1309151649);
a = ii(a, b, c, d, x[i+ 4], 6 , -145523070);
d = ii(d, a, b, c, x[i+11], 10, -1120210379);
c = ii(c, d, a, b, x[i+ 2], 15, 718787259);
b ii(b, c, d, a, x[i+ 9], 21, -343485551); a add(a, olda);
b = add(b, oldb);
c = add(c, oldc);
d = add(d, oldd);
}
//return rhex(a) + rhex(b) + rhex(c) + rhex(d);
int32 = new Array(a,b,c,d);
return int32toarray(int32);
}
//Javascryptor by Michel Chilowicz
//Under GNU-GPL Licence (cf http://www.gnu.org)
values64 = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O",
"P","Q","R","S","T","U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o",
"p","q","r","s","t","u","v","w","x","y","z",
"0","1","2","3","4","5","6","7","8","9","+","/");
function base64_encode(tab)
{
var resultat ="";
for (i=0;i> 2]+values64[(tab[i] > 2]+values64[((tab[i] > 4)]+values64[(tab[i+1] > 2]+values64[((tab[i] > 4)]+values64[((tab[i+1] >6)]+values64[tab[i+2]&63];
}
}
}
function base64_filter(text)
{
var resultat = "";
for (i=0;i47) && (ordinal64) && (ordinal96) && (ordinal47) && (ordinal64) && (ordinal96) && (ordinal-1)) data[j++] = (car0 > 4);
if ((car1 > -1) && (car2>-1)) data[j++] = ((car1 & 15) > 2);
if ((car2 > -1) && (car3>-1)) data[j++] = ((car2 & 3)
1 févr. 2004 à 17:09