Ignorerer problemerne med dine databaseudsagn indtil videre, vil jeg besvare spørgsmålet vedrørende password_hash
.
Kort sagt, nej, sådan gør man ikke. Du ønsker ikke at gemme saltet alene, du skal gemme både hash og salt og derefter bruge begge til at bekræfte adgangskoden. password_hash
returnerer en streng, der indeholder begge dele.
password_hash
funktion returnerer en streng, der indeholder både hashen og saltet. Så:
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user
Derefter for at bekræfte:
// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
// Verified
}
Derudover, som kommentarerne antyder, kan du, hvis du er interesseret i sikkerhed, se på mysqli
(ext/mysql
er forældet i PHP5.5), og også denne artikel om SQL-injektion:http://php.net/manual/en/security.database.sql-injection.php