Discussion:
Pb mcrypt_encrypt / mcrypt_decrypt : caracteres ajoutes
(trop ancien pour répondre)
Laurent44
2007-08-15 17:24:33 UTC
Permalink
Bonjour,

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_RIJNDAEL_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.

A quoi cela peut-il être dû ?

Merci
Laurent
P'tit Marcel
2007-08-16 09:57:55 UTC
Permalink
Post by Laurent44
mcrypt_encrypt(MCRYPT_RIJNDAEL_256, "Ma clé de cryptage","Mon texte à
crypter", MCRYPT_MODE_ECB,
mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_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/
Continuer la lecture sur narkive:
Loading...