Mysql
 sql >> Database >  >> RDS >> Mysql

php password_verify non funziona con il database

Trovato il problema. quando ho fatto questo:

echo strlen($hash)

ha stampato 90, il che è strano perché non c'erano assolutamente spazi alla fine quando ho stampato il messaggio di successo/fallimento e il campo ha una lunghezza varchar di 255

Ho aggiunto questa riga:

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

E ora funziona bene.

È strano che nessun altro sembri essersi imbattuto in questo problema. Ci sono post simili su password_verify, ma nessuno di questi ha richiesto questo tipo di conversione, o qualsiasi altra conversione se è per questo:

php password_verify non funzionante

password_verify php non corrisponde

http://forums.phpfreaks.com/topic/ 283407-need-help-with-password-verify/

Utilizzo della funzione password_hash e password_verify di PHP 5.5

Una cosa che mi infastidisce è che questo impedisce al codice di essere compatibile con le versioni successive. Come faccio a sapere che l'hash è lungo 60 caratteri quando l'impostazione predefinita cambia?