Что бы SQL заявление для проверки пароля, если таблица MySql, которая выглядит следующим образом:проверки пароля с солью и sha512whirlpool в MySQL
user_id password salt
------- -------- ----
1 23ed2... m9f3m...
Я пробовал:
select * from password_table
where user_id = 1
and password = shal(`salt` + 'password')
order by id desc
limit 1
, который не сделал вернуть что-нибудь. Алгоритм представляет собой вихревую ванну sha512.
В PHP это выглядит следующим образом:
hash('sha512', hash('whirlpool', $password));
Вполне возможно, что это не может быть сделано в операторе SQL.
Вы не должны использовать простую хэш-функцию для защиты паролей пользователя. Вам нужно использовать сильную схему хэширования, такую как PBKDF2, bcrypt, scrypt и Argon2. Обязательно используйте высокий коэффициент затрат/итераций. Обычно выбирается стоимость, так что одна итерация занимает не менее 100 мс. Подробнее: [Как безопасно использовать хэш-пароли?] (Http://security.stackexchange.com/q/211/45523) –