Mcrypt() en DES et/ou 3DES

PROTECTIONNISTE
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
- 24 mai 2005 à 10:24
PROTECTIONNISTE
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
- 24 mai 2005 à 19:35
18987 http://www.javascriptfr.com/code.aspx?id=18987Ce lien est un JavaScript de cryptage DES et/ou Triple DES.

Je cherche la fonction mcrypt() equivalente à cette source Javascript (que se soit en DES ou Triple DES), je crois qu'il me manque juste la définition du $iv mais sur la source JS le iv tres étrange et je ne le comprend pas trop car il y a la fonctio cbc mais cbcleft et cbcright ???.

voici ce que j'ai fais :
<?php
$iv_size = mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

$code = mcrypt_cbc(MCRYPT_DES, "cle", "ma phrase bidon", MCRYPT_ENCRYPT,$iv);
ou
$code = mcrypt_cbc(MCRYPT_TRIPLE_DES, "clepluslongue", "ma phrase bidon", MCRYPT_ENCRYPT,$iv);
?>

Si une ame charitable puisse me guider

Amicalement.

5 réponses

cs_sjon
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
24 mai 2005 à 13:04
Sael og blesud



Essayez avec cela, je ne l'ai pas testé mais je pense que cela devrait marcher ...



<?php

$td = mcrypt_module_open(MCRYPT_TripleDES, '', MCRYPT_MODE_ECB, '');

$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

$ks = mcrypt_enc_get_key_size($td);

$key = substr(md5('very secret key'), 0, $ks);



mcrypt_generic_init($td, $key, $iv);

$encrypted = mcrypt_generic($td, 'This is very important data');

echo trim($encrypted)."

\n";

mcrypt_generic_deinit($td);



mcrypt_generic_init($td, $key, $iv);

$decrypted = mdecrypt_generic($td, $encrypted);

echo trim($decrypted)."\n";

mcrypt_generic_deinit($td);



mcrypt_module_close($td);

?>


NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...



Sigurjón Bírgir Sigurðssón aka Sjón



HARDWARE : Partie de l'ordinateur qui reçoit les coups quand se plante le software ...



<fon =""></fon>
0
PROTECTIONNISTE
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
1
24 mai 2005 à 13:58
Merci pour cette réponse mais sa n'est pas sa.

MCRYPT_MODE_ECB << logiquement apres lecture du JS c'est en CBC et non ECB j'ai tout de m^me tester votre script dans
les 2 situations mais cela n'est pas bon.

pour infos avec le DES du JS :
si clé cle et chaine ma phrase bidon
alors chaine codé = a6d9bed3c51d5c85f5a6f0678de7de5b

et en 3DES du JS :

si clé = clepluslongue et chaine = ma phrase bidon
alors chaine codé = 44ce621284e30a6db0c161bdaa6346fa
0
cs_sjon
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
24 mai 2005 à 14:55
Sael og blesud



<?php



/*

En fait vous êtes libre de choisir le mode et le cypher. Voici d'autres exemples possibles :



$td = mcrypt_module_open(MCRYPT_TripleDES, '', MCRYPT_MODE_CBC, '');

$td = mcrypt_module_open(MCRYPT_TripleDES, '', MCRYPT_MODE_ECB, '');

$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');

$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_ECB, '');



Pour l'exemple ici j'utilise le cypher TripleDES et le mode CBC :



*/



$td = mcrypt_module_open(MCRYPT_TripleDES, '', MCRYPT_MODE_CBC, '');

$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

$ks = mcrypt_enc_get_key_size($td);

$key = substr(md5('ma clef très secrète'), 0, $ks);

$chaine='Ma chaine à traiter ...';



mcrypt_generic_init($td, $key, $iv);

$encrypted = mcrypt_generic($td, $chaine);

mcrypt_generic_deinit($td);



mcrypt_generic_init($td, $key, $iv);

$decrypted = mdecrypt_generic($td, $encrypted);

mcrypt_generic_deinit($td);



mcrypt_module_close($td);



echo "Encrypt : ".trim($encrypted)."
\n";

echo "Decrypt : ".trim($decrypted)."
\n";



?>



ATTENTION : Si vous utiliser la librairie mcrypt_win32 il y a un bug
dans la dernière version (celle du 19 Janvier 2004) au niveau de la
fonction mdecrypt_generic(); il vous faut par conséquent utiliser
l'ancienne version (celle du 30 Décembre 2002) disponible ici : http://ftp.emini.dk/pub/php/win32/mcrypt/old/libmcrypt.dll



Voili voilou



Bon courage


NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón



HARDWARE : Partie de l'ordinateur qui reçoit les coups quand se plante le software ...
0
cs_sjon
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
24 mai 2005 à 15:01
Sael og blesud



Petite précision supplémentaire cela ne fonctionne qui si vous avez la version 2.4.x ou 2.5.x de la librairie mcrypt ...


NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón



HARDWARE : Partie de l'ordinateur qui reçoit les coups quand se plante le software ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PROTECTIONNISTE
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
1
24 mai 2005 à 19:35
Petite précision je suis hébergé sur free donc je ne peux pas me permettre d'installer la librairie en local j'ai installé "libmcrypt-2.5.3"
mais je n'ai pas réellement besoin du décryptage mais seulement du cryptage en fait.

Mon but est de crypter en DES ou 3DES avec php comme le fait le script Javascript qui lui pourra décoder, c'est pour cela que je souhaites le même cryptage, ce qui n'est pas le cas actuellement.

Amicalement
0