Я использую salt для шифрования паролей моих пользователей. Я использую PHP, и вот краткий пример того, что происходит во время регистрации пользователей.Аутентифицировать логин пользователя с солью
Здесь:
PHP код:
// Gives me my random key. My salt generator.
$salt = uniqid(mt_rand());
// My password via what users inputs.
$userpwd;
// Then the encryption. I use a HMAC hash.
$encrypted = hmac_hash("sha256", $userpwd, $salt);
?>
Теперь, когда все работает для меня в моем сценарии. Но мой вопрос: как мне аутентифицировать вход пользователя в систему? Новый зашифрованный пароль является случайным, поэтому я не могу сравнить пароль с формой входа в сохраненный зашифрованный пароль в базе данных.
Я искал и не могу найти решение. Может быть, я не искал достаточно сложно, но есть ли способ расшифровать пароль? Что я могу сделать для аутентификации пользователя с помощью моего сценария?
Спасибо, вот что я сделаю. Я храню соль в файле конфигурации. Я читал много людей, говорящих, чтобы хранить соль в дБ, но я не чувствовал себя комфортно с ней.Просто разорвать db был скомпрометирован. – Mario
Но имейте в виду, что использование одной и той же соли для всех уменьшает необходимое время вычислений для злоумышленника. –
Это также приведет к тому же хешу, если более одного человека имеет одинаковый пароль. Гораздо лучше иметь соль на пользователя (за пароль). – Aether