Mcrypt : Can not create an IV with a size of less then 1 or

Signaler
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012
-
Bonjour j'utilise 2 fonctions, une pour crypter, une pour decrypter. Pour être franc je n'y comprend pas grand chose...

J'ai essayé dans un fichier test.php le code suivant pour crypter :

$string = "Some text to be encrypted";
$secret_key = "k4Mdj9Ka8Kam2kMxn2jMdj0KA2";

// Encryption Algorithm
$etype = MCRYPT_RIJNDAEL_256;

// Create the initialization vector for added security.
$iv = mcrypt_create_iv(mcrypt_get_iv_size($etype, MCRYPT_MODE_ECB), MCRYPT_RAND);

// Output original string
PRINT "Original string: $string ";

// Encrypt $string
$encrypted_string = mcrypt_encrypt($etype, $secret_key, $string, MCRYPT_MODE_CBC, $iv);

// Convert to hexadecimal and send to browser
PRINT "Encrypted string: ".BIN2HEX($encrypted_string)."";

$decrypted_string = mcrypt_decrypt($etype, $secret_key, $encrypted_string, MCRYPT_MODE_CBC, $iv);

PRINT "Decrypted string is: $decrypted_string"/php

Tout marche!

Maintenant j'essaye d'y transposer en pratique dans ma class Secure :

class Secure {
const Cle = 'blablabla';
const etype = MCRYPT_RIJNDAEL_256;

...

function Crypter($etype,$secret_key,$string)
{
$iv = mcrypt_create_iv(mcrypt_get_iv_size($etype, MCRYPT_MODE_ECB), MCRYPT_RAND);
return bin2hex(mcrypt_encrypt($etype, $secret_key, $string, MCRYPT_MODE_CBC, $iv));
}

function Decrypt($etype,$secret_key,$encrypted_string)
{
$iv = mcrypt_create_iv(mcrypt_get_iv_size($etype, MCRYPT_MODE_ECB), MCRYPT_RAND);
return mcrypt_decrypt($etype, $secret_key, $encrypted_string, MCRYPT_MODE_CBC, $iv);
}


Puis dans ma class pour enregistrer un membre j'ai quelque chose de ce style :

$pseudo = Secure::Crypter($this->etype,$this->Cle,$pseudo);
$email = Secure::Crypter($this->etype,$this->Cle,$email);


Conclusion cela ne marche pas et j'ai des warning :

Warning: mcrypt_get_iv_size() [function.mcrypt-get-iv-size]: Module initialization failed in /home/public_html/class/Secure.php on line 162

Warning: mcrypt_create_iv() [function.mcrypt-create-iv]: Can not create an IV with a size of less then 1 or greater then 2147483647 in /home/public_html/class/Secure.php on line 162

Warning: mcrypt_encrypt() [function.mcrypt-encrypt]: Module initialization failed in /home/public_html/class/Secure.php on line 163

Warning: mcrypt_get_iv_size() [function.mcrypt-get-iv-size]: Module initialization failed in /home/public_html/class/Secure.php on line 162


Je n'arrive pas à voir ou je me suis planter... le test.php simple marche. Quelles erreurs ai-je fais ? J'avoue ne pas comprendre grand chose à mcrypt.

Merci d'avance pour votre aide!