Mysql
 sql >> Base de données >  >> RDS >> Mysql

php password_verify ne fonctionne pas avec la base de données

Trouvé le problème. quand j'ai fait ça :

echo strlen($hash)

il a imprimé 90, ce qui est étrange car il n'y avait définitivement aucun espace à la fin lorsque j'ai imprimé le message de réussite/échec, et le champ a une longueur varchar de 255

J'ai ajouté cette ligne :

$hash = substr( $hash, 0, 60 );

Et maintenant ça marche bien.

C'est étrange que personne d'autre ne semble avoir rencontré ce problème. Il existe des messages similaires sur password_verify, mais aucun d'entre eux n'a nécessité ce type de conversion, ni aucune conversion d'ailleurs :

php password_verify ne fonctionne pas

password_verify php ne correspond pas

http://forums.phpfreaks.com/topic/ 283407-besoin-d'aide-avec-password-verify/

Utiliser les fonctions password_hash et password_verify de PHP 5.5

Une chose qui me dérange, c'est que cela empêche le code d'être compatible. Comment saurai-je que le hachage comporte 60 caractères lorsque la valeur par défaut change ?