sql >> Database >  >> RDS >> Mysql

PHP password_verify werkt niet tegen database

De \n in de volgende regel, is een regeleinde ingesloten, (Bewerken:een die niet kan worden opgenomen in het door de gebruiker ingevoerde wachtwoord) .

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

en je moet het verwijderen en opnieuw beginnen met een nieuwe hash.

Jay Blanchard , een lid hier op Stack heeft een notitie ingediend hierover niet te lang ook in de password_hash() handleiding, iets waar hij en ik het eigenlijk over hadden.

Een andere optie zou zijn om trim() te gebruiken ; dat werkt ook (op het moment van hashen).

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

Toch moet je nog steeds opnieuw beginnen door de oude hash(s) te wissen en nieuwe te maken.

Houd er echter rekening mee dat u niet moet ontsnappen aan wachtwoorden.

Een zoals 123'\abc (zijnde volkomen geldig) wordt gewijzigd in 123\'\abc door real_escape_string() ; het is niet nodig. password_verify() zorgt daar voor, qua beveiliging.




  1. ATN2() Voorbeelden in SQL Server

  2. Extreem eenvoudige PHP en Mysql

  3. PHP-lus die fungeert als cronjob [zorg ervoor dat er slechts één instantie wordt uitgevoerd]

  4. Hoe de prestaties van MySQL te benchmarken met SysBench