Fonction mcrypt bug - Comment avoir un cryptage PHP réversible et sur? [Résolu]

Signaler
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012
-
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012
-
Bonjour,

J'ai trouvé 2 fonctions pour chiffrer du texte sur php.net (utilisant mcrypt) :

function Crypter($str, $key)
{
# Add PKCS7 padding.
$block = mcrypt_get_block_size('des', 'ecb');
if (($pad = $block - (strlen($str) % $block)) < $block) {
$str .= str_repeat(chr($pad), $pad);
}

return mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
}

function Decrypt($str, $key)
{
$str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);

# Strip padding out.
$block = mcrypt_get_block_size('des', 'ecb');
$pad ord($str[($len strlen($str)) - 1]);
if ($pad && $pad < $block && preg_match(
'/' . chr($pad) . '{' . $pad . '}$/', $str
)
) {
return substr($str, 0, strlen($str) - $pad);
}
return $str;
}

Le problème est que le decryptage des mots de pass ne marche pas.


J'ai :

const Cle = "\xc8\xd9\xb9\x06\xd9\xe8\xc9\xd2";

et dans un fichier test.php :

$crypt = $check->Crypter('test@gmail.com',$check->Cle);
$rep = $check->Decrypt('¾Ñ¡• jª²¥aêâZ¤E',$check->Cle);

Crypt me donne ¾Ñ¡• jª²¥aêâZ¤E pour test@gmail.com,cela semble marcher. Decrypt me sort : &ˆÁ«³ÜX]¿šˆ1²Ä1$TgQgö‰!Œ4ZÜü®¬ au lieu de test@gmail.com...

Je ne pige rien à ces fonctions. J'aimerai simplement un cryptage réversible et sur.

Merci d'avance pour votre aide

3 réponses

Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
Bonjour,

tente de faire plutôt un $rep = $check->Decrypt($crypt, $check->Cle). Ca fonctionne.

Dans ton exemple, tu passes en 1er argument une chaine de caractères (issue d'un copier/coller du navigateur) seul hic, il y a des caractères non ASCII dedans qui ne s'affichent pas forcement.

Si ca ne fonctionne pas, en utilisant $crypt, regarde si la valeur de $check->Cle.

bonne journée

p.s: avant que Cod57 ou syndrael ne passent par là et disent pour les mots de passe, on n'utilise pas d'algo réversible ^^
Messages postés
381
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
23 octobre 2014

j'aime le p.s.

Je sors !
________________________________________
( $toBe || !$toBe ) = $this->Question();
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012

MErci pour ton aide! Effectivement c'était un problème de char non ASCII.