Den allmänna praxisen är följande:
- Hämta
lösenord
hash från databasen däranvändarnamn
=det inmatade användarnamnet. - Om rader hittas finns det en användare
- Nu jämför du det inmatade lösenordet med hash som lagras i databasen.
Jag ska beskriva ovanstående flöde i lite pseudokod åt dig här:
$query = SELECT password FROM users WHERE username = '$username'
$data = FETCH_THE_DATA($query);
if(password_verify($USER_INPUTTED_PASSWORD, $data['password'])) {
// password is correct
} else {
// password is in-correct
}
Anteckningar
- Sluta använda
mysql_*
funktioner. Biblioteket är föråldrat eftersom det är opålitligt och kommer att tas bort i framtida versioner av PHP.- Det är bättre att använda PDO eller MySQLi Prepared Statements
- Du bör alltid läsa manualen -
password_verify()
, står det tydligt att du jämför "användarens inmatade lösenord" med den hashade versionen som lagras i din databas.