MCRYPT SOUS WINDOWS HEEEEEEEEEEEEEEEEEEEELP

MCRYPT SOUS WINDOWS HEEEEEEEEEEEEEEEEEEEELP - PHP - Programmation

Marsh Posté le 10-06-2004 à 22:43:26    

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 :
  1. $key='mdr';
  2.       $string='Bienvenue';
  3.       $td = mcrypt_module_open (MCRYPT_TripleDES, "", MCRYPT_MODE_ECB,
  4.       "" );
  5.       // test du TD
  6.       if(mcrypt_enc_self_test($td) == TRUE)
  7.       {print "ressource foirée" . "<br>";}
  8.       print "TD creé avec succès ..." . "<br>";
  9.      
  10.      
  11.       if((mcrypt_get_iv_size(MCRYPT_TripleDES, MCRYPT_MODE_ECB)) == FALSE)
  12.       {print "La taille de Iv n a pas pu etre retirée" . "<br>";}
  13.       print "Taille de Iv :" . mcrypt_get_iv_size(MCRYPT_TripleDES, MCRYPT_MODE_ECB) . "<br>"; //renvoie 8
  14.      
  15.       srand((int)md5($key)); //appel de srand
  16.       $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
  17. $prob = mcrypt_generic_init ($td, substr( md5($key), 0, mcrypt_enc_get_key_size ($td) ), $iv);
  18.       if ( $prob < 0)
  19.       {
  20.           print "Erreur lors de mcrypt_generic_init" . "<br>";}
  21.        print "mcrypt_generic_init renvoie :" . $prob . "<br>"; //renvoie 0
  22.      
  23.       $crypted = mcrypt_generic ($td, $string);
  24.      
  25.       print "Original :" . $string . "<br>";
  26.       print "Crypté : " . $crypted . "<br>";
  27.       $crypted64 = base64_encode($crypted);
  28.       print "Crypté 64 :" . $crypted64 . "<br>";
  29.       if ( mcrypt_generic_deinit($td) == FALSE)
  30.       {
  31.           print "Probleme du generic_deinit" . "<br>";
  32.       }
  33.      
  34.           print " Le mcrypt_generic_deinit OK <br>";
  35.          
  36.    /* TOUT IMPEC JUSQU ICI */
  37.  
  38.        print "##########################<br>";
  39.      $prob2 = mcrypt_generic_init ($td, substr( md5($key), 0, mcrypt_enc_get_key_size ($td) ), $iv);
  40.       if ( $prob2 < 0)
  41.       {
  42.           print "Erreur lors de mcrypt_generic_init" . "<br>";}
  43.        print "mcrypt_generic_init renvoie :" . $prob . "<br>";
  44.          $decrypted = mdecrypt_generic($td, $crypted);
  45.        
  46. // ICI JE COMPRENDS PLUS  
  47.          print "Decryptage sans trim :" . $decrypted . "<br>";
  48.          print "Decryptage avec trim :" . trim($decrypted) . "<br>";
  49.        
  50.        
  51.             if ( mcrypt_generic_deinit($td) == FALSE)
  52.       {
  53.           print "Probleme du generic_deinit" . "<br>";
  54.       }
  55.           print " Le mcrypt_generic_deinit OK <br>";
  56.          
  57.       if ( mcrypt_module_close($td) == FALSE)
  58.       {
  59.           print "Probleme du module_close<br>";
  60.       }
  61.          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
Reply

Marsh Posté le 10-06-2004 à 22:43:26   

Reply

Marsh Posté le 12-06-2004 à 10:13:49    

putin j y crois pas , ya personne pour repondre !

Reply

Marsh Posté le 12-06-2004 à 11:21:18    

titre en caps, tout ca :o

Reply

Marsh Posté le 12-06-2004 à 11:26:37    

joelan > insprires toi de ca : http://www.neokraft.net/articles/chiffrement-php/


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 12-06-2004 à 21:06:29    

Citation :

 joelan > insprires toi de ca


 
Bah ca fe deja deux jours que je cherche, et j px te dire que j ai ingurgité les docs PHP.
Le plus frustrant est que le test de chaque fonction est toujours OK :pt1cable:

Reply

Marsh Posté le 12-06-2004 à 21:42:02    

joelan a écrit :

putin j y crois pas , ya personne pour repondre !


 
Parce que les titres en majuscule ne sont pas fort appréciés, idem pour ceux avec des "HEEEEEEELP" etc.  
(cf les règles)


Message édité par antp le 12-06-2004 à 21:42:08

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 13-06-2004 à 02:26:35    

joelan a écrit :

Citation :

 joelan > insprires toi de ca


 
Bah ca fe deja deux jours que je cherche, et j px te dire que j ai ingurgité les docs PHP.
Le plus frustrant est que le test de chaque fonction est toujours OK :pt1cable:


 
 
ajoutes ceci en début de script :

Code :
  1. ini_set('display_errors', 1);
  2. error_reporting(E_ALL);


 
 
des messages d'erreur ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 14-06-2004 à 19:45:01    

Aucun message d'erreur à signaler. Je pense que je vais tout simplement switcher sur Apache pour linux ...
 
Apparemment le générateur de nombre aléatoire est inexistant sous Windows. D'ou il faut appeler srand(). Par contre pour les autres ya deux générateurs disponibles ( et pas besoin d'appeler srand() avant)
 
Ya tellement de petit détail comme ça

Reply

Marsh Posté le 05-09-2004 à 15:41:53    

Je profite de mon expérience perso pour upper ce topic.
 
En fait la dernière version de libmcrypt.dll ne marche pas pour la fonction decrypt. (cf le commentaire ici http://fr2.php.net/manual/en/funct [...] neric.php)
 
Il faut donc prendre l'avant dernière version.

Reply

Sujets relatifs:

Leave a Replay

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