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

Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
18 décembre 2012
- - Dernière réponse : cs_zzzzzz
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
18 décembre 2012
- 7 oct. 2011 à 21:52
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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Dernière intervention
20 février 2013
3
Merci
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 ^^

Merci cs_47 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de cs_47
Messages postés
381
Date d'inscription
lundi 12 novembre 2007
Dernière intervention
23 octobre 2014
0
Merci
j'aime le p.s.

Je sors !
________________________________________
( $toBe || !$toBe ) = $this->Question();
Commenter la réponse de inwebo
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
18 décembre 2012
0
Merci
MErci pour ton aide! Effectivement c'était un problème de char non ASCII.
Commenter la réponse de cs_zzzzzz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.