Когда пользователь пытается войти в систему, существует два способа проверить, является ли пользователь действительным или нет.Лучше проверить имя пользователя и пароль или просто имя пользователя?
Метод 1: Выполните следующий запрос и проверить количество возвращаемых строк идентична 1.
SELECT * FROM users WHERE username = $_POST['username'] AND password = md5($_POST['password'])
Способ 2: Выполните запрос, а затем проверить матч паролей.
SELECT * FROM users WHERE username = $_POST['username']
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)){
if($row['password'] == md5($_POST['password'])) $logged_in = TRUE;
}
Является ли один из этих методов предпочтительным по сравнению с другим? И если да, то почему?
Но если я использую ключ, хэш и соль, предпочтительнее метод 1 или метод 2? – Lars
Вам нужно будет использовать метод 2 для извлечения соли. – Kermit
Но я не могу использовать метод 1, например ... "WHERE username = $ _POST ['username'] И пароль = hashed_salted_password ($ _ POST ['password'])", где эта функция выполняет для меня работу? – Lars