Есть таблица accounts, в ней поля id, salt, hash. Как мне сделать запрос чтобы узнать, правильный ли пароль был введен используя только пароль без соли.
То что у меня: SELECT NULL FROM accounts WHERE id = 1 AND hash = MD5(CONCAT(salt, '123321')); Но как я понимаю у меня неопределенный salt. Тут либо использовать JOIN, либо подзапросы...
Да, для этого вам потребуется использовать подзапрос. Вам нужно получить salt для данного пользователя и затем сконкатенировать его с введенным паролем для сравнения с хэшем в базе данных.
Пример запроса:
```sql SELECT NULL FROM accounts WHERE id = 1 AND hash = MD5(CONCAT((SELECT salt FROM accounts WHERE id = 1), '123321'));
Этот запрос выберет запись только в том случае, если введенный пароль совпадает с хэшем в базе данных для данного пользователя.