Пренебрегвайки засега проблемите с изявленията на вашата база данни, ще отговоря на въпроса относно password_hash
.
Накратко, не, не го правите така. Не искате да съхранявате солта самостоятелно, трябва да съхранявате както хеша, така и солта и след това да използвате и двете, за да проверите паролата. password_hash
връща низ, съдържащ и двете.
password_hash
функцията връща низ, който съдържа както хеша, така и солта. И така:
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user
След това за проверка:
// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
// Verified
}
Освен това, както подсказват коментарите, ако се интересувате от сигурност, може да искате да разгледате mysqli
(ext/mysql
е отхвърлен в PHP5.5), както и тази статия за SQL инжектиране:http://php.net/manual/en/security.database.sql-injection.php