Aller au contenu

Pb de cryptage avec mcrypt


Sujets conseillés

Guest Xavir
Posté

Bonjour,

G un problème avec ce cryptage : Après avoir crypté 2 chaines, puis mit dans un cookie, je récupère les informations et les décryptes. Le seul hic, c'est qu'après décryptage, le nombres de caractères est tourjours de 16 !

Alors je me retrouve avec les espaces à la fin du mot décrypté ke je ne peux pa enlever :

function encode_cookie($loginuser,$loginpass)
{
$key = md5("Clé");
$key2 = md5("Clé 2");

$td = mcrypt_module_open (MCRYPT_SERPENT, "", MCRYPT_MODE_ECB, "");
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
mcrypt_generic_init ($td, $key, $iv);
$lgusrcookie = mcrypt_generic($td, $loginuser);
mcrypt_generic_deinit ($td);

$td2 = mcrypt_module_open (MCRYPT_SERPENT, "", MCRYPT_MODE_ECB, "");
$iv2 = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td2), MCRYPT_RAND);
mcrypt_generic_init ($td2, $key2, $iv2);
$lgpsscookie = mcrypt_generic($td2, $loginpass);
mcrypt_generic_deinit ($td2);

setcookie("type1",$lgusrcookie,time()+60*60*24);
setcookie("type2",$lgpsscookie,time()+60*60*24);
}

function decode_cookie_usr()
{
$lgusrdecookie = $_COOKIE["type1"];

$key = md5("Clé");

$td = mcrypt_module_open (MCRYPT_SERPENT, "", MCRYPT_MODE_ECB, "");
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
mcrypt_generic_init ($td, $key, $iv);
$loginuser_serpent = mdecrypt_generic ($td, $lgusrdecookie);
mcrypt_generic_deinit ($td);

$loginuser = str_replace(" ", "", $loginuser_serpent); // même avec ça les espaces ne s'en vont pa !

return $loginuser;
}

function decode_cookie_pss()
{
$lgpssdecookie = $_COOKIE["type2"];

$key2 = md5("Clé 2");

$td2 = mcrypt_module_open (MCRYPT_SERPENT, "", MCRYPT_MODE_ECB, "");
$iv2 = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td2), MCRYPT_RAND);
mcrypt_generic_init ($td2, $key2, $iv2);
$loginpass_serpent = mdecrypt_generic ($td2, $lgpssdecookie);
mcrypt_generic_deinit ($td2);

$loginpass = str_replace(" ", "", $loginpass_serpent); //Pareil
return $loginpass;
}

Voilà, alors si le mot de passe décrypté vaut "coucou", il vaudra en fait "coucou (avec encore 10 espaces pour faire 16 caractères)".

Y a-t-il une solution pour les enlever, et retrouver la vrai chaine non-cryptée après décryptage ?

Merci.

Posté

Bonjour,

pour enlever des espaces avant ou après, il existe :

trim : enlève les caractères invisibles et espaces en début et fin de chaine,

ltrim : idem, en début de chaine

rtrim : idem, en fin de chaine.

Nico.

Guest Xavir
Posté (modifié)

Ok, merci, je vais essayer !

Merci, j'ai pris rtrim(), et ça marche impec, merci ! :D:hourra:

Modifié par Xavir

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...