Jag ignorerar problemen med dina databassatser för tillfället, jag ska svara på frågan om password_hash
.
Kort sagt, nej, det är inte så man gör. Du vill inte lagra saltet ensamt, du bör lagra både hash och salt och sedan använda båda för att verifiera lösenordet. password_hash
returnerar en sträng som innehåller båda.
password_hash
funktion returnerar en sträng som innehåller både hash och salt. Så:
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user
Sedan för att verifiera:
// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
// Verified
}
Dessutom, som kommentarerna antyder, om du är intresserad av säkerhet kanske du vill titta på mysqli
(ext/mysql
är utfasad i PHP5.5), och även denna artikel om SQL-injektion:http://php.net/manual/en/security.database.sql-injection.php