Laurent44 a écrit :
> Je crypte des données avec la fonction :
> mcrypt_encrypt(MCRYPT_RIJNDAEL_256, "Ma clé de cryptage","Mon texte à
> crypter", MCRYPT_MODE_ECB,
> mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAE L_256,
> MCRYPT_MODE_ECB), MCRYPT_RAND))
> Avant de stocker le resultat dans une bdd MySQL.
> Lorsque je veux utiliser ensuite ce texte, je l'extrait de la bdd et
> le décrypte par la fonction inverse : je remplace mcrypt_encrypt par
> mcrypt_decrypt
>
> Je récupère bien mon texte, mais j'ai des caractères en plus à la fin
> du texte (un ? banc sur un losange noir), de l'ordre de 10 à 20, c'est
> variable.
1/ Vérifie que ce problème se pose même sans passer par l'intermédiaire
de la BD. Si ce n'est plus le cas, le problème vient du stockage en BD
qui ne conserve pas la totalité de la chaîne cryptée.
2/ Si le problème demeure : au début du texte à crypter, ajoute sa
taille ("17 Bonjour, Monsieur"). Après décryptage, tronque le texte
comme suit :
$blanc = strpos($texte, ' ');
$texte = substr($texte, $blanc + 1, substr($texte, 0, $blanc));
3/ Non, je ne sais pas d'où vient le problème, mais l'important est
d'avoir la solution ;-)
eça
--
P'tit Marcel
stats sur les forums modérés
http://www.centrale-lyon.org/ng/