sql >> Databasteknik >  >> RDS >> Mysql

PHP password_verify fungerar inte mot databasen

\n på följande rad, bäddas in en radbrytning, (Redigera:en som inte kan inkluderas i användarens inmatade lösenord) .

$password = password_hash($pass,  PASSWORD_BCRYPT, $options)."\n";

och du måste ta bort den och börja om med en ny hash.

Jay Blanchard , en medlem här på Stack skickade en anteckning om det inte för länge också i password_hash() manual, vilket är något som han och jag faktiskt pratade om.

Ett annat alternativ skulle vara att använda trim() ; som också fungerar (vid hashögonblicket).

$password = password_hash($pass,  PASSWORD_BCRYPT, $options)."\n";
$password = trim($password);
// Store in db after

Ändå behöver du fortfarande börja om genom att rensa gamla hash(ar) och skapa nya.

Kom dock ihåg att du inte bör undkomma lösenord.

En som 123'\abc (som är helt giltig) kommer att ändras till 123\'\abc av real_escape_string() ; det behövs inte. password_verify() tar hand om det, säkerhetsmässigt.




  1. REGEX för att välja n:te värde från en lista, vilket tillåter nollvärden

  2. Hur kan jag använda now() i Doctrine 2 DQL?

  3. Uppdaterar vyer i MySQL

  4. EF6 MySql:Update-Database -Script genererar SQL utan semikolon