sql >> Databasteknik >  >> RDS >> Mysql

php password_verify fungerar inte med databasen

Hittade problemet. när jag gjorde det här:

echo strlen($hash)

den skrev ut 90, vilket är konstigt eftersom det definitivt inte fanns några mellanslag i slutet när jag skrev ut meddelandet om framgång/misslyckande, och fältet har en varchar-längd på 255

Jag lade till den här raden:

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

Och nu fungerar det bra.

Det är konstigt att ingen annan verkar ha stött på det här problemet. Det finns liknande inlägg om password_verify, men ingen av dem krävde den här typen av konvertering, eller någon konvertering för den delen:

php password_verify fungerar inte

password_verify php matchar inte

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

Använder PHP 5.5:s password_hash och password_verify-funktion

En sak som stör mig är att detta hindrar koden från att vara framåtkompatibel. Hur vet jag att hashen är 60 tecken långt när standarden ändras?



  1. Hur man ansluter till MySQL med Node.js

  2. MySQL vecka beräkning mellan två datum

  3. Hur man exporterar data till platt fil med BCP Utility och importerar data med Bulk Insert

  4. SAMLING 'utf8_general_ci' är inte giltig för CHARACTER SET 'latin1'