In de voorgevulde database is het wachtwoord van alle gebruikers 'secret'. Van de gebruikers waarbij het wachtwoord leesbaar is zullen nooit kunnen inloggen.De password_verify(...) functie vergelijkt het ingevoerde wachtwoord met de wachtwoord HASH uit de database. Dus geen HASH in de database betekend niet kunnen inloggen.
Je ziet dat de password HASH steeds verschillend is, toch hebben al die gebruikers hetzelfde wachtwoord. Aan de hand van de HASH kan het originele wachtwoord niet worden achterhaald. Dat voorkomt dat wachtwoorden op straat komen te liggen na een hack.
Bij het maken van een nieuwe gebruiker is het dus belangrijk dat het wachtwoord een HASH is. Om een HASH van een wachtwoord te maken kan de php functie password_hash(...) worden gebruikt.
Bijvoorbeeld:
password_hash($request->password, PASSWORD_BCRYPT); // het meegestuurde password hashen
Stel dat we de hash van het password 'secret' willen maken
<?= password_hash("secret", PASSWORD_BCRYPT); ?>
Als je bovenstaande code maar eens TIJDELIJK toe aan /app/views/home.view.php. Elke keer als je de home pagina bezoekt zal er een andere hash op het scherm worden geschreven. Het is niet mogelijk om van de hash weer terug te gaan naar het originele wachtwoord (zonder brute force).