crypt ne crypte plus pareil...

jduffas
Invité n'ayant pas de compte PHPfrance

26 déc. 2011, 21:48

Bonjour à tous,

j'utilise la fonction "crypt" afin de coder un mot de passe et de l'inclure dans .htpasswd
je l'utilise surtout ensuite pour vérifier que le mot de passe que tape une personne correspond bien à celui inclus dans .htpasswd
or je viens de mettre à jour mon mac (de 10.5 à 10.6) et crypt ne me donne plus le même résultat !!!


pour demo j'ai maintenant 1$I/jTqnCxUlg alors qu'avant ça me donnait 1$7me1NMvKy36

voici comment je crypte en php :
$crypte = crypt('demo',CRYPT_STD_DES);

une idée ?

merci à vous.

jean

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

28 déc. 2011, 00:47

Comment est installe PHP ? Manuellement, via MAMP, autre ?

Regarde les differences de versions de Mac OS et chercher s'il y a quelque chose a ce sujet, je vois ca dans la doc:
5.3.0 PHP dispose maintenant de sa propre implémentation de crypt MD5, Standard DES, Extended DES et l'algorithme Blowfish. Il l'utilisera si le système ne fournit pas l'un ou l'autre des algorithmes.

jduffas
Invité n'ayant pas de compte PHPfrance

28 déc. 2011, 15:48

quand bien même, il devrait continuer à utiliser celui du système, à mois que la mise à jours ne l'ai supprimé...
ceci dit, j'ai contourné le problème.

ce qui est étrange, c'est que le nouveau mot de passe généré ne fonctionne pas avec .htpasswd du coup, je le génère d'une autre façon qui fonctionne :
$$passwordcode = crypt($motdepasse, base64_encode($motdepasse));

ViPHP
ViPHP | 5462 Messages

29 déc. 2011, 00:59

ton CRYPT_STD_DES sert a rien, c'est une constante qui dit juste si l'algo DES est présente, je te conseil de bien la doc de crypte

ton base64 aussi au passage