Когда вы проверяете пароль, вы можете сделать:
$hashed = md5($_POST['password'] . SALT);
$sql = "SELECT * FROM users WHERE username = '{$_POST['username']}' AND password = '$hashed'";
Я упростил это, чтобы показать важную часть проверки пароля, на самом деле вы должны использовать подготовленный оператор для предотвращения внедрения SQL.
Другой способ - извлечь хешированный пароль из базы данных, а затем сравнить его с предоставленным хешированным + соленым паролем:
$hashed = md5($_POST['password'] . SALT);
$sql = "SELECT password FROM users WHERE username = '{$_POST['username']}'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
if ($row && $hashed == $row['password']) {
// user is validated
}
Если вы исправите свой метод хранения паролей, чтобы использовать более разумный метод, чем статический SALT
, этот второй метод можно легко обновить. Вместо $hashed == $row['password']
вы бы использовали password_verify($_POST['password'], $row['password'])
.