begin process at 2010 02 09 19:36:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > CODE PERMETTANT DE CRYPTER, DÉCRYPTER ET DE "BRUTEFORCER" AVEC L'ALGO DES ET 3DES

CODE PERMETTANT DE CRYPTER, DÉCRYPTER ET DE "BRUTEFORCER" AVEC L'ALGO DES ET 3DES


 Information sur la source

Note :
7,75 / 10 - par 4 personnes
7,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Initié Date de création :25/12/2003 Vu :11 941

Auteur : lcprog

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Cette page permet de crypter et de décrypter des mots de passe codés avec DES ou 3DES.
Un bouton permet aussi de retrouver les mots de passe clairs en mode bruteforce (sans clé de cryptage), à condition que la longueur de clé d'origine soit petite (4 caractères maxi)


vous pouvez accéder à la page en question directement à l'adresse suivante: http://82.224.14.14/divers/des.html

Source

  • <HTML>
  • <HEAD><TITLE>Cryptage DES </TITLE><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>
  • <BODY bgcolor="#CCCCFF" >
  • <p align="center"><strong><font color="#224242">Cryptage DES</font></strong></p>
  • <SCRIPT language="Javascript">
  • <!--
  • function des (key, message, encrypt, mode, iv) {
  • var spfunction1 = new Array (0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000,0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4,0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404,0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000,0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400,0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404,0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400,0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004);
  • var spfunction2 = new Array (0x80108020,0x80008000,0x8000,0x108020,0x100000,0x20,0x80100020,0x80008020,0x80000020,0x80108020,0x80108000,0x80000000,0x80008000,0x100000,0x20,0x80100020,0x108000,0x100020,0x80008020,0,0x80000000,0x8000,0x108020,0x80100000,0x100020,0x80000020,0,0x108000,0x8020,0x80108000,0x80100000,0x8020,0,0x108020,0x80100020,0x100000,0x80008020,0x80100000,0x80108000,0x8000,0x80100000,0x80008000,0x20,0x80108020,0x108020,0x20,0x8000,0x80000000,0x8020,0x80108000,0x100000,0x80000020,0x100020,0x80008020,0x80000020,0x100020,0x108000,0,0x80008000,0x8020,0x80000000,0x80100020,0x80108020,0x108000);
  • var spfunction3 = new Array (0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200,0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208,0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208,0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000,0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0,0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008,0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008,0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200);
  • var spfunction4 = new Array (0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001,0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001,0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080,0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81,0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000,0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80,0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081,0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080);
  • var spfunction5 = new Array (0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000,0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000,0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100,0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100,0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100,0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000,0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000,0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100);
  • var spfunction6 = new Array (0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000,0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010,0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010,0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000,0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010,0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000,0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010,0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010);
  • var spfunction7 = new Array (0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800,0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802,0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002,0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800,0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2,0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800,0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802,0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002);
  • var spfunction8 = new Array (0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000,0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40,0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000,0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000,0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040,0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040,0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0,0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000);
  • var keys = des_createKeys (key);
  • var m=0, i, j, temp, temp2, right1, right2, left, right, looping;
  • var cbcleft, cbcleft2, cbcright, cbcright2
  • var endloop, loopinc;
  • var len = message.length;
  • var chunk = 0;
  • var iterations = keys.length == 32 ? 3 : 9;
  • if (iterations == 3) {looping = encrypt ? new Array (0, 32, 2) : new Array (30, -2, -2);}
  • else {looping = encrypt ? new Array (0, 32, 2, 62, 30, -2, 64, 96, 2) : new Array (94, 62, -2, 32, 64, 2, 30, -2, -2);}
  • message += "\0\0\0\0\0\0\0\0";
  • result = "";
  • tempresult = "";
  • if (mode == 1) {
  • cbcleft = (iv.charCodeAt(m++) << 24) | (iv.charCodeAt(m++) << 16) | (iv.charCodeAt(m++) << 8) | iv.charCodeAt(m++);
  • cbcright = (iv.charCodeAt(m++) << 24) | (iv.charCodeAt(m++) << 16) | (iv.charCodeAt(m++) << 8) | iv.charCodeAt(m++);
  • m=0;
  • }
  • while (m < len) {
  • left = (message.charCodeAt(m++) << 24) | (message.charCodeAt(m++) << 16) | (message.charCodeAt(m++) << 8) | message.charCodeAt(m++);
  • right = (message.charCodeAt(m++) << 24) | (message.charCodeAt(m++) << 16) | (message.charCodeAt(m++) << 8) | message.charCodeAt(m++);
  • if (mode == 1) {if (encrypt) {left ^= cbcleft; right ^= cbcright;} else {cbcleft2 = cbcleft; cbcright2 = cbcright; cbcleft = left; cbcright = right;}}
  • temp = ((left >>> 4) ^ right) & 0x0f0f0f0f; right ^= temp; left ^= (temp << 4);
  • temp = ((left >>> 16) ^ right) & 0x0000ffff; right ^= temp; left ^= (temp << 16);
  • temp = ((right >>> 2) ^ left) & 0x33333333; left ^= temp; right ^= (temp << 2);
  • temp = ((right >>> 8) ^ left) & 0x00ff00ff; left ^= temp; right ^= (temp << 8);
  • temp = ((left >>> 1) ^ right) & 0x55555555; right ^= temp; left ^= (temp << 1);
  • left = ((left << 1) | (left >>> 31));
  • right = ((right << 1) | (right >>> 31));
  • for (j=0; j<iterations; j+=3) {
  • endloop = looping[j+1];
  • loopinc = looping[j+2];
  • for (i=looping[j]; i!=endloop; i+=loopinc) {
  • right1 = right ^ keys[i];
  • right2 = ((right >>> 4) | (right << 28)) ^ keys[i+1];
  • temp = left;
  • left = right;
  • right = temp ^ (spfunction2[(right1 >>> 24) & 0x3f] | spfunction4[(right1 >>> 16) & 0x3f]
  • | spfunction6[(right1 >>> 8) & 0x3f] | spfunction8[right1 & 0x3f]
  • | spfunction1[(right2 >>> 24) & 0x3f] | spfunction3[(right2 >>> 16) & 0x3f]
  • | spfunction5[(right2 >>> 8) & 0x3f] | spfunction7[right2 & 0x3f]);
  • }
  • temp = left; left = right; right = temp;
  • }
  • left = ((left >>> 1) | (left << 31));
  • right = ((right >>> 1) | (right << 31));
  • temp = ((left >>> 1) ^ right) & 0x55555555; right ^= temp; left ^= (temp << 1);
  • temp = ((right >>> 8) ^ left) & 0x00ff00ff; left ^= temp; right ^= (temp << 8);
  • temp = ((right >>> 2) ^ left) & 0x33333333; left ^= temp; right ^= (temp << 2);
  • temp = ((left >>> 16) ^ right) & 0x0000ffff; right ^= temp; left ^= (temp << 16);
  • temp = ((left >>> 4) ^ right) & 0x0f0f0f0f; right ^= temp; left ^= (temp << 4);
  • if (mode == 1) {if (encrypt) {cbcleft = left; cbcright = right;} else {left ^= cbcleft2; right ^= cbcright2;}}
  • tempresult += String.fromCharCode ((left>>>24), ((left>>>16) & 0xff), ((left>>>8) & 0xff), (left & 0xff), (right>>>24), ((right>>>16) & 0xff), ((right>>>8) & 0xff), (right & 0xff));
  • chunk += 8;
  • if (chunk == 512) {result += tempresult; tempresult = ""; chunk = 0;}
  • }
  • return result + tempresult;
  • }
  • function des_createKeys (key) {
  • pc2bytes0 = new Array (0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004,0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204);
  • pc2bytes1 = new Array (0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001,0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101);
  • pc2bytes2 = new Array (0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808,0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808);
  • pc2bytes3 = new Array (0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000,0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000);
  • pc2bytes4 = new Array (0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010,0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010);
  • pc2bytes5 = new Array (0,0x400,0x20,0x420,0,0x400,0x20,0x420,0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420);
  • pc2bytes6 = new Array (0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002,0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002);
  • pc2bytes7 = new Array (0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800,0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800);
  • pc2bytes8 = new Array (0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002,0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002);
  • pc2bytes9 = new Array (0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008,0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408);
  • pc2bytes10 = new Array (0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020,0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020);
  • pc2bytes11 = new Array (0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200,0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200);
  • pc2bytes12 = new Array (0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000,0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010);
  • pc2bytes13 = new Array (0,0x4,0x100,0x104,0,0x4,0x100,0x104,0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105);
  • var iterations = key.length >= 24 ? 3 : 1;
  • var keys = new Array (32 * iterations);
  • var shifts = new Array (0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0);
  • var lefttemp, righttemp, m=0, n=0, temp;
  • for (var j=0; j<iterations; j++) { //either 1 or 3 iterations
  • left = (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++);
  • right = (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++);
  • temp = ((left >>> 4) ^ right) & 0x0f0f0f0f; right ^= temp; left ^= (temp << 4);
  • temp = ((right >>> -16) ^ left) & 0x0000ffff; left ^= temp; right ^= (temp << -16);
  • temp = ((left >>> 2) ^ right) & 0x33333333; right ^= temp; left ^= (temp << 2);
  • temp = ((right >>> -16) ^ left) & 0x0000ffff; left ^= temp; right ^= (temp << -16);
  • temp = ((left >>> 1) ^ right) & 0x55555555; right ^= temp; left ^= (temp << 1);
  • temp = ((right >>> 8) ^ left) & 0x00ff00ff; left ^= temp; right ^= (temp << 8);
  • temp = ((left >>> 1) ^ right) & 0x55555555; right ^= temp; left ^= (temp << 1);
  • temp = (left << 8) | ((right >>> 20) & 0x000000f0);
  • left = (right << 24) | ((right << 8) & 0xff0000) | ((right >>> 8) & 0xff00) | ((right >>> 24) & 0xf0);
  • right = temp;
  • for (i=0; i < shifts.length; i++) {
  • if (shifts[i]) {left = (left << 2) | (left >>> 26); right = (right << 2) | (right >>> 26);}
  • else {left = (left << 1) | (left >>> 27); right = (right << 1) | (right >>> 27);}
  • left &= 0xfffffff0; right &= 0xfffffff0;
  • lefttemp = pc2bytes0[left >>> 28] | pc2bytes1[(left >>> 24) & 0xf]
  • | pc2bytes2[(left >>> 20) & 0xf] | pc2bytes3[(left >>> 16) & 0xf]
  • | pc2bytes4[(left >>> 12) & 0xf] | pc2bytes5[(left >>> 8) & 0xf]
  • | pc2bytes6[(left >>> 4) & 0xf];
  • righttemp = pc2bytes7[right >>> 28] | pc2bytes8[(right >>> 24) & 0xf]
  • | pc2bytes9[(right >>> 20) & 0xf] | pc2bytes10[(right >>> 16) & 0xf]
  • | pc2bytes11[(right >>> 12) & 0xf] | pc2bytes12[(right >>> 8) & 0xf]
  • | pc2bytes13[(right >>> 4) & 0xf];
  • temp = ((righttemp >>> 16) ^ lefttemp) & 0x0000ffff;
  • keys[n++] = lefttemp ^ temp; keys[n++] = righttemp ^ (temp << 16);
  • }
  • }
  • return keys;
  • }
  • function binToHex (s) {
  • var r = "";
  • var hexes = new Array ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
  • for (var i=0; i<s.length; i++) {r += hexes [s.charCodeAt(i) >> 4] + hexes [s.charCodeAt(i) & 0xf];}
  • return r;
  • }
  • function hexToBin (s) {
  • r = "";
  • var hexas = "0123456789abcdef";
  • var i = 0;
  • while (i<s.length) { r += String.fromCharCode((hexas.indexOf(s.charAt(i)) << 4) | hexas.indexOf(s.charAt(i+1))); i+=2;}
  • return r;
  • }
  • function coder_des(texte, cle) {
  • return binToHex(des (cle, texte, 1, 0));
  • }
  • function decoder_des(code, cle) {
  • return des(cle, hexToBin(code), 0, 0);
  • }
  • function codage(){
  • document.forms["form"].CODEE.value = coder_des(document.forms["form"].CLAIRE.value, document.forms["form"].CLE.value);
  • }
  • function decodage(){
  • document.forms["form"].CLAIRE.value = decoder_des(document.forms["form"].CODEE.value, document.forms["form"].CLE.value);
  • }
  • function bruteforce(){
  • var bCahaineCorrecte = false;
  • var sChar="0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^'abcdefghijklmnopqrstuvwxyz ";
  • var sKeyForTest = sChar.substring(0,1);
  • var bFirstKeyForTest = true;
  • var nLenCLE = 0;
  • sChaine = document.forms["form"].CODEE.value;
  • while(!bCahaineCorrecte){
  • nLenCLE = sKeyForTest.length;
  • bIncLnKEY = true;
  • if(!bFirstKeyForTest){
  • for(nNumcar = 0; nNumcar < nLenCLE ; nNumcar++){
  • if(sKeyForTest.substring(nNumcar, nNumcar + 1) != sChar.substring(sChar.length - 1, sChar.length))
  • bIncLnKEY = false;
  • }
  • //on incrémente la longueur de la clé
  • if(bIncLnKEY){
  • nLenCLE++;
  • sKeyForTest = "";
  • for(nNumcar = 0; nNumcar < nLenCLE ; nNumcar++)
  • sKeyForTest = sKeyForTest + sChar.substring(0,1);
  • }
  • //on passe à la clé suivante...
  • else{
  • bFoundPosCharToInc = false;
  • nPosCharToInc = nLenCLE - 1;
  • while(!bFoundPosCharToInc){
  • if(sKeyForTest.substring(nPosCharToInc, nPosCharToInc + 1) != sChar.substring(sChar.length - 1, sChar.length))
  • bFoundPosCharToInc = true;
  • else
  • nPosCharToInc = nPosCharToInc - 1;
  • }
  • sKeyForTest = sKeyForTest.substring(0,nPosCharToInc ) + sChar.substring(sChar.indexOf(sKeyForTest.substring(nPosCharToInc, nPosCharToInc + 1)) + 1,sChar.indexOf(sKeyForTest.substring(nPosCharToInc, nPosCharToInc + 1))+2);
  • while(sKeyForTest.length != nLenCLE)
  • sKeyForTest = sKeyForTest + sChar.substring(0,1);
  • }
  • }
  • else bFirstKeyForTest = false;
  • if(CharsStringIsInThisString(decoder_des(document.forms["form"].CODEE.value, sKeyForTest), sChar)){
  • document.forms["form"].CLE.value = sKeyForTest;
  • document.forms["form"].CLAIRE.value = decoder_des(document.forms["form"].CODEE.value, sKeyForTest);
  • bCahaineCorrecte = true;
  • }
  • }
  • }
  • function CharsStringIsInThisString(sChaineTest, sThisString){
  • var bOKchaine = true;
  • for(nCPT = 0; nCPT < sChaineTest.length; nCPT++)
  • if(sThisString.indexOf(sChaineTest.substring(nCPT, nCPT + 1)) == -1 && sChaineTest.charCodeAt(nCPT) != 0){
  • bOKchaine = false;
  • }
  • return bOKchaine;
  • }
  • //-->
  • </SCRIPT>
  • <p>&nbsp;</p>
  • <FORM name="form" method="post" action="">
  • <TABLE>
  • <TR><TD>Clé :</TD>
  • <TD><input type="text" name="CLE"></TD>
  • </TR>
  • <TR><TD>Chaîne claire (ascii) :</TD>
  • <TD><input name="CLAIRE" type="text" size="110"></TD>
  • </TR>
  • <TR><TD>Chaîne codée (hexa) :</TD>
  • <TD><input name="CODEE" type="text" size="110"></TD>
  • </TR>
  • </TABLE>
  • </FORM>
  • <p>&nbsp;</p>
  • <p>&nbsp;</p>
  • <p>&nbsp;</p>
  • <TABLE align = center>
  • <TD>
  • <input type="button" name="coder" onClick= "codage()" value="Coder">
  • <input type="button" name="decoder" onClick= "decodage()" value="Décoder">
  • <input type="button" onClick= "bruteforce()" name="bruteforce" value="Brute Force!">
  • </TD>
  • </TABLE>
  • </BODY>
  • </HTML>
<HTML>
<HEAD><TITLE>Cryptage DES </TITLE><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>

<BODY bgcolor="#CCCCFF" >
<p align="center"><strong><font color="#224242">Cryptage DES</font></strong></p>

  <SCRIPT language="Javascript">
<!--
function des (key, message, encrypt, mode, iv) {
  var spfunction1 = new Array (0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000,0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4,0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404,0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000,0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400,0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404,0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400,0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004);
  var spfunction2 = new Array (0x80108020,0x80008000,0x8000,0x108020,0x100000,0x20,0x80100020,0x80008020,0x80000020,0x80108020,0x80108000,0x80000000,0x80008000,0x100000,0x20,0x80100020,0x108000,0x100020,0x80008020,0,0x80000000,0x8000,0x108020,0x80100000,0x100020,0x80000020,0,0x108000,0x8020,0x80108000,0x80100000,0x8020,0,0x108020,0x80100020,0x100000,0x80008020,0x80100000,0x80108000,0x8000,0x80100000,0x80008000,0x20,0x80108020,0x108020,0x20,0x8000,0x80000000,0x8020,0x80108000,0x100000,0x80000020,0x100020,0x80008020,0x80000020,0x100020,0x108000,0,0x80008000,0x8020,0x80000000,0x80100020,0x80108020,0x108000);
  var spfunction3 = new Array (0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200,0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208,0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208,0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000,0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0,0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008,0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008,0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200);
  var spfunction4 = new Array (0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001,0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001,0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080,0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81,0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000,0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80,0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081,0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080);
  var spfunction5 = new Array (0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000,0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000,0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100,0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100,0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100,0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000,0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000,0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100);
  var spfunction6 = new Array (0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000,0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010,0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010,0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000,0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010,0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000,0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010,0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010);
  var spfunction7 = new Array (0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800,0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802,0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002,0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800,0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2,0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800,0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802,0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002);
  var spfunction8 = new Array (0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000,0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40,0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000,0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000,0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040,0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040,0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0,0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000);

  var keys = des_createKeys (key);
  var m=0, i, j, temp, temp2, right1, right2, left, right, looping;
  var cbcleft, cbcleft2, cbcright, cbcright2
  var endloop, loopinc;
  var len = message.length;
  var chunk = 0;
  var iterations = keys.length == 32 ? 3 : 9; 
  if (iterations == 3) {looping = encrypt ? new Array (0, 32, 2) : new Array (30, -2, -2);}
  else {looping = encrypt ? new Array (0, 32, 2, 62, 30, -2, 64, 96, 2) : new Array (94, 62, -2, 32, 64, 2, 30, -2, -2);}

  message += "\0\0\0\0\0\0\0\0"; 

  result = "";
  tempresult = "";

  if (mode == 1) { 
    cbcleft = (iv.charCodeAt(m++) << 24) | (iv.charCodeAt(m++) << 16) | (iv.charCodeAt(m++) << 8) | iv.charCodeAt(m++);
    cbcright = (iv.charCodeAt(m++) << 24) | (iv.charCodeAt(m++) << 16) | (iv.charCodeAt(m++) << 8) | iv.charCodeAt(m++);
    m=0;
  }


  while (m < len) {
    left = (message.charCodeAt(m++) << 24) | (message.charCodeAt(m++) << 16) | (message.charCodeAt(m++) << 8) | message.charCodeAt(m++);
    right = (message.charCodeAt(m++) << 24) | (message.charCodeAt(m++) << 16) | (message.charCodeAt(m++) << 8) | message.charCodeAt(m++);


    if (mode == 1) {if (encrypt) {left ^= cbcleft; right ^= cbcright;} else {cbcleft2 = cbcleft; cbcright2 = cbcright; cbcleft = left; cbcright = right;}}


    temp = ((left >>> 4) ^ right) & 0x0f0f0f0f; right ^= temp; left ^= (temp << 4);
    temp = ((left >>> 16) ^ right) & 0x0000ffff; right ^= temp; left ^= (temp << 16);
    temp = ((right >>> 2) ^ left) & 0x33333333; left ^= temp; right ^= (temp << 2);
    temp = ((right >>> 8) ^ left) & 0x00ff00ff; left ^= temp; right ^= (temp << 8);
    temp = ((left >>> 1) ^ right) & 0x55555555; right ^= temp; left ^= (temp << 1);

    left = ((left << 1) | (left >>> 31)); 
    right = ((right << 1) | (right >>> 31)); 


    for (j=0; j<iterations; j+=3) {
      endloop = looping[j+1];
      loopinc = looping[j+2];

      for (i=looping[j]; i!=endloop; i+=loopinc) { 
        right1 = right ^ keys[i]; 
        right2 = ((right >>> 4) | (right << 28)) ^ keys[i+1];

        temp = left;
        left = right;
        right = temp ^ (spfunction2[(right1 >>> 24) & 0x3f] | spfunction4[(right1 >>> 16) & 0x3f]
              | spfunction6[(right1 >>>  8) & 0x3f] | spfunction8[right1 & 0x3f]
              | spfunction1[(right2 >>> 24) & 0x3f] | spfunction3[(right2 >>> 16) & 0x3f]
              | spfunction5[(right2 >>>  8) & 0x3f] | spfunction7[right2 & 0x3f]);
      }
      temp = left; left = right; right = temp; 
    } 

    left = ((left >>> 1) | (left << 31)); 
    right = ((right >>> 1) | (right << 31)); 

    temp = ((left >>> 1) ^ right) & 0x55555555; right ^= temp; left ^= (temp << 1);
    temp = ((right >>> 8) ^ left) & 0x00ff00ff; left ^= temp; right ^= (temp << 8);
    temp = ((right >>> 2) ^ left) & 0x33333333; left ^= temp; right ^= (temp << 2);
    temp = ((left >>> 16) ^ right) & 0x0000ffff; right ^= temp; left ^= (temp << 16);
    temp = ((left >>> 4) ^ right) & 0x0f0f0f0f; right ^= temp; left ^= (temp << 4);

    if (mode == 1) {if (encrypt) {cbcleft = left; cbcright = right;} else {left ^= cbcleft2; right ^= cbcright2;}}
    tempresult += String.fromCharCode ((left>>>24), ((left>>>16) & 0xff), ((left>>>8) & 0xff), (left & 0xff), (right>>>24), ((right>>>16) & 0xff), ((right>>>8) & 0xff), (right & 0xff));

    chunk += 8;
    if (chunk == 512) {result += tempresult; tempresult = ""; chunk = 0;}
  } 

  return result + tempresult;
} 

function des_createKeys (key) {

  pc2bytes0  = new Array (0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004,0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204);
  pc2bytes1  = new Array (0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001,0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101);
  pc2bytes2  = new Array (0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808,0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808);
  pc2bytes3  = new Array (0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000,0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000);
  pc2bytes4  = new Array (0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010,0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010);
  pc2bytes5  = new Array (0,0x400,0x20,0x420,0,0x400,0x20,0x420,0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420);
  pc2bytes6  = new Array (0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002,0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002);
  pc2bytes7  = new Array (0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800,0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800);
  pc2bytes8  = new Array (0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002,0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002);
  pc2bytes9  = new Array (0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008,0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408);
  pc2bytes10 = new Array (0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020,0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020);
  pc2bytes11 = new Array (0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200,0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200);
  pc2bytes12 = new Array (0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000,0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010);
  pc2bytes13 = new Array (0,0x4,0x100,0x104,0,0x4,0x100,0x104,0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105);


  var iterations = key.length >= 24 ? 3 : 1;
  var keys = new Array (32 * iterations);
  var shifts = new Array (0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0);
  var lefttemp, righttemp, m=0, n=0, temp;

  for (var j=0; j<iterations; j++) { //either 1 or 3 iterations
    left = (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++);
    right = (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++);

    temp = ((left >>> 4) ^ right) & 0x0f0f0f0f; right ^= temp; left ^= (temp << 4);
    temp = ((right >>> -16) ^ left) & 0x0000ffff; left ^= temp; right ^= (temp << -16);
    temp = ((left >>> 2) ^ right) & 0x33333333; right ^= temp; left ^= (temp << 2);
    temp = ((right >>> -16) ^ left) & 0x0000ffff; left ^= temp; right ^= (temp << -16);
    temp = ((left >>> 1) ^ right) & 0x55555555; right ^= temp; left ^= (temp << 1);
    temp = ((right >>> 8) ^ left) & 0x00ff00ff; left ^= temp; right ^= (temp << 8);
    temp = ((left >>> 1) ^ right) & 0x55555555; right ^= temp; left ^= (temp << 1);
    temp = (left << 8) | ((right >>> 20) & 0x000000f0);
    left = (right << 24) | ((right << 8) & 0xff0000) | ((right >>> 8) & 0xff00) | ((right >>> 24) & 0xf0);
    right = temp;

    for (i=0; i < shifts.length; i++) {
      if (shifts[i]) {left = (left << 2) | (left >>> 26); right = (right << 2) | (right >>> 26);}
      else {left = (left << 1) | (left >>> 27); right = (right << 1) | (right >>> 27);}
      left &= 0xfffffff0; right &= 0xfffffff0;
      lefttemp = pc2bytes0[left >>> 28] | pc2bytes1[(left >>> 24) & 0xf]
              | pc2bytes2[(left >>> 20) & 0xf] | pc2bytes3[(left >>> 16) & 0xf]
              | pc2bytes4[(left >>> 12) & 0xf] | pc2bytes5[(left >>> 8) & 0xf]
              | pc2bytes6[(left >>> 4) & 0xf];
      righttemp = pc2bytes7[right >>> 28] | pc2bytes8[(right >>> 24) & 0xf]
                | pc2bytes9[(right >>> 20) & 0xf] | pc2bytes10[(right >>> 16) & 0xf]
                | pc2bytes11[(right >>> 12) & 0xf] | pc2bytes12[(right >>> 8) & 0xf]
                | pc2bytes13[(right >>> 4) & 0xf];
      temp = ((righttemp >>> 16) ^ lefttemp) & 0x0000ffff; 
      keys[n++] = lefttemp ^ temp; keys[n++] = righttemp ^ (temp << 16);
    }
  } 
  return keys;
}

function binToHex (s) {
  var r = "";
  var hexes = new Array ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
  for (var i=0; i<s.length; i++) {r += hexes [s.charCodeAt(i) >> 4] + hexes [s.charCodeAt(i) & 0xf];}
  return r;
}

function hexToBin (s) {
  r = "";
  var hexas = "0123456789abcdef";
  var i = 0;
  while (i<s.length) { r += String.fromCharCode((hexas.indexOf(s.charAt(i)) << 4) | hexas.indexOf(s.charAt(i+1))); i+=2;}
  return r;
}


function coder_des(texte, cle) {
   return binToHex(des (cle, texte, 1, 0));
}


function decoder_des(code, cle) {
   return des(cle, hexToBin(code), 0, 0);
}


function codage(){
   document.forms["form"].CODEE.value = coder_des(document.forms["form"].CLAIRE.value, document.forms["form"].CLE.value);
}

function decodage(){
   document.forms["form"].CLAIRE.value = decoder_des(document.forms["form"].CODEE.value, document.forms["form"].CLE.value);
}

function bruteforce(){
    var bCahaineCorrecte = false;
    var sChar="0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^'abcdefghijklmnopqrstuvwxyz ";
    var sKeyForTest = sChar.substring(0,1);
    var bFirstKeyForTest = true;
    var nLenCLE = 0;
    sChaine = document.forms["form"].CODEE.value;

   while(!bCahaineCorrecte){
        nLenCLE = sKeyForTest.length;
        bIncLnKEY = true;
        if(!bFirstKeyForTest){
          for(nNumcar = 0; nNumcar < nLenCLE ; nNumcar++){
             if(sKeyForTest.substring(nNumcar, nNumcar + 1) != sChar.substring(sChar.length - 1, sChar.length))
               bIncLnKEY = false;
          }
          //on incrémente la longueur de la clé      
          if(bIncLnKEY){
            nLenCLE++;
            sKeyForTest = "";
            for(nNumcar = 0; nNumcar < nLenCLE ; nNumcar++)
                sKeyForTest = sKeyForTest + sChar.substring(0,1);           
          } 
          //on passe à la clé suivante...
          else{
            bFoundPosCharToInc = false;
            nPosCharToInc = nLenCLE - 1; 
            while(!bFoundPosCharToInc){
                 if(sKeyForTest.substring(nPosCharToInc, nPosCharToInc + 1) != sChar.substring(sChar.length - 1, sChar.length))
                   bFoundPosCharToInc = true; 
                  else
                   nPosCharToInc = nPosCharToInc - 1;
            }          
            sKeyForTest = sKeyForTest.substring(0,nPosCharToInc ) + sChar.substring(sChar.indexOf(sKeyForTest.substring(nPosCharToInc, nPosCharToInc + 1)) + 1,sChar.indexOf(sKeyForTest.substring(nPosCharToInc, nPosCharToInc + 1))+2);
            while(sKeyForTest.length != nLenCLE)
                 sKeyForTest = sKeyForTest + sChar.substring(0,1);             
            }
        }
        else bFirstKeyForTest = false; 
       if(CharsStringIsInThisString(decoder_des(document.forms["form"].CODEE.value, sKeyForTest), sChar)){
          document.forms["form"].CLE.value = sKeyForTest;
          document.forms["form"].CLAIRE.value = decoder_des(document.forms["form"].CODEE.value, sKeyForTest); 
          bCahaineCorrecte = true;       
       } 
   }
  
}

function CharsStringIsInThisString(sChaineTest, sThisString){
   var bOKchaine = true;
   for(nCPT = 0; nCPT < sChaineTest.length; nCPT++)
      if(sThisString.indexOf(sChaineTest.substring(nCPT, nCPT + 1)) == -1 && sChaineTest.charCodeAt(nCPT) != 0){
        bOKchaine = false;
   } 
 return bOKchaine; 
}


//-->
</SCRIPT>

<p>&nbsp;</p>
<FORM name="form" method="post" action="">
<TABLE>
<TR><TD>Clé :</TD>
    <TD><input type="text" name="CLE"></TD>
</TR>
<TR><TD>Chaîne claire (ascii) :</TD>
    <TD><input name="CLAIRE" type="text" size="110"></TD>
</TR>
<TR><TD>Chaîne codée (hexa) :</TD>
    <TD><input name="CODEE" type="text" size="110"></TD>
</TR>
</TABLE>
</FORM>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<TABLE align = center> 
  <TD>
  <input type="button" name="coder" onClick= "codage()" value="Coder">
  <input type="button" name="decoder" onClick= "decodage()" value="Décoder">
  <input type="button" onClick= "bruteforce()" name="bruteforce" value="Brute Force!">
  </TD>
</TABLE>

</BODY>
</HTML>



 Sources de la même categorie

Source avec Zip MOOTABLEAU par Miky76
Source avec Zip CALCULER VOTRE IMC par lesnouesremy
CONSOLE DOS par djebbipgm
Source avec Zip PLUGIN JQUERY ARTE: AJOUTER DU TEMPS REEL SUR VOS PAGES WEB par arthurobriot
FAIRE UN FILTRE DES VILLES par scropfi01

Commentaires et avis

Commentaire de juki_webmaster le 09/01/2004 16:37:19

Salut , je trouve que ton cryptage et assez complexe comme ton code javascript.
Mais peut tu faire une analyse de ton code , et nous expliquer clairement le fonctionnement de ton systeme .
Sinon je trouve bien ! ( ton code )

Commentaire de neo1502 le 07/03/2004 14:53:13

Est ce plus fiable que le MD5???

Commentaire de coucou747 le 19/02/2005 12:51:53

c'est diféreznt du MD5

le md5 ne crypte pas, il cré une chaine de signature.....

le DES lui crypte vraiment

(data encryption standar)

c'est 16 rondes avec des XOR et des inverstions de bits....

Commentaire de GHOST31 le 02/12/2008 15:52:49

ok super mais y aurais t-il quelqu'un qui pourrais me decrypter cette clef svp
EC97-D0B-54C4A0DF757A5E34D7020-C1-45

merci

Commentaire de coucou747 le 02/12/2008 17:08:03

on ne hack pas ici.

Commentaire de GHOST31 le 03/12/2008 05:18:10

c'est pas du hack saucisse y a qu'il m'est impossible d'ouvrir ma boite mail depuis quelques mois et j'ai reussi avec certains logiciel a retrouver cette clef mais crypter elas et je ne suis pas un lamer's non plus je veut juste recuperer ma boite donc si quelqu'un peut me dechiffrer ca ca serai sympas merci

EC97-D0B-54C4A0DF757A5E34D7020-C1-45

Commentaire de azerti912345678 le 13/09/2009 02:54:01

COMENT ON TERLERCHARGE TON LOGICIELLL

Commentaire de lebossdu159 le 24/11/2009 19:05:12

slt comment on fait pour hacker des compte je ni arrive pas jai telacharger mais sa marche pas aider moi svp

Commentaire de lebossdu159 le 24/11/2009 19:05:55

svp il y a quelqun svp reponder svp

Commentaire de skullrock le 29/12/2009 16:28:12

pa de piratage ici :(

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales