joelan | Salut,
Je n'arrive pas a faire fonctionner MCRYPT malgré tous mes efforts. J ' ai checké toutes les docs, tester toutes les fonctions !
J'ai lu sur la doc qu'il fallait appelé la fonction srand() avec d'utiliser MCRYPT_RAND. ( Sous windows uniquement )
Le code va vous faire rigoler
Code :
- $key='mdr';
- $string='Bienvenue';
- $td = mcrypt_module_open (MCRYPT_TripleDES, "", MCRYPT_MODE_ECB,
- "" );
- // test du TD
- if(mcrypt_enc_self_test($td) == TRUE)
- {print "ressource foirée" . "<br>";}
- print "TD creé avec succès ..." . "<br>";
-
-
- if((mcrypt_get_iv_size(MCRYPT_TripleDES, MCRYPT_MODE_ECB)) == FALSE)
- {print "La taille de Iv n a pas pu etre retirée" . "<br>";}
- print "Taille de Iv :" . mcrypt_get_iv_size(MCRYPT_TripleDES, MCRYPT_MODE_ECB) . "<br>"; //renvoie 8
-
- srand((int)md5($key)); //appel de srand
- $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
- $prob = mcrypt_generic_init ($td, substr( md5($key), 0, mcrypt_enc_get_key_size ($td) ), $iv);
- if ( $prob < 0)
- {
- print "Erreur lors de mcrypt_generic_init" . "<br>";}
- print "mcrypt_generic_init renvoie :" . $prob . "<br>"; //renvoie 0
-
- $crypted = mcrypt_generic ($td, $string);
-
- print "Original :" . $string . "<br>";
- print "Crypté : " . $crypted . "<br>";
- $crypted64 = base64_encode($crypted);
- print "Crypté 64 :" . $crypted64 . "<br>";
- if ( mcrypt_generic_deinit($td) == FALSE)
- {
- print "Probleme du generic_deinit" . "<br>";
- }
-
- print " Le mcrypt_generic_deinit OK <br>";
-
- /* TOUT IMPEC JUSQU ICI */
-
- print "##########################<br>";
- $prob2 = mcrypt_generic_init ($td, substr( md5($key), 0, mcrypt_enc_get_key_size ($td) ), $iv);
- if ( $prob2 < 0)
- {
- print "Erreur lors de mcrypt_generic_init" . "<br>";}
- print "mcrypt_generic_init renvoie :" . $prob . "<br>";
- $decrypted = mdecrypt_generic($td, $crypted);
-
- // ICI JE COMPRENDS PLUS
- print "Decryptage sans trim :" . $decrypted . "<br>";
- print "Decryptage avec trim :" . trim($decrypted) . "<br>";
-
-
- if ( mcrypt_generic_deinit($td) == FALSE)
- {
- print "Probleme du generic_deinit" . "<br>";
- }
- print " Le mcrypt_generic_deinit OK <br>";
-
- if ( mcrypt_module_close($td) == FALSE)
- {
- print "Probleme du module_close<br>";
- }
- print "module_close OK<br>";
|
Tout est OK, sauf que la chaine $crypted est la meme que la $decrypted Message édité par joelan le 10-06-2004 à 22:48:26
|