Het punt is... Je wordt verondersteld gezouten, gehasht op te slaan wachtwoorden
in de databank. Aangezien deze individueel gezouten zijn per gebruiker/wachtwoord, kunt u niet zoek ze direct op met password = ?
, omdat je het zout niet kent en dus niet vooraf de bijpassende hash kunt berekenen. Als je dit goed doet, moet je moeten haal eerst het gebruikersrecord op gebruikersnaam op en valideer vervolgens de wachtwoordhash met behulp van de opgehaalde salt/hash. Pseudocode:
$user = fetch_from_database($_POST['username']);
if (!$user) {
throw new Exception("User doesn't exist");
}
if (!password_verify($_POST['password'], $user['password_hash'])) {
throw new Exception('Invalid password');
}
echo 'Welcome ', $user['name'];
Zie http://php.net/password_hash , http://php.net/password_verify .