Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb mcrypt_encrypt / mcrypt_decrypt : caracteres ajoutes

1 réponse
Avatar
Laurent44
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

1 réponse

Avatar
P'tit Marcel
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.


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/