Выбор ответа Junior Сессии и безопасность спрашивают часто обновлено

Хранение паролей

Вопрос

Как правильно хранить пароли пользователей в PHP?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: passwordhash($pass, PASSWORDDEFAULT) и passwordverify. passwordhash использует медленный алгоритм с солью (по умолчанию bcrypt, доступен Argon2id), а passwordverify сравнивает за постоянное время. passwordneedsrehash помогает обновлять хеши при смене параметров.

Варианты ответа

  1. password_hash($pass, PASSWORD_DEFAULT) и password_verifyправильный ответ
  2. md5($pass) с уникальной солью для каждого пользователя
  3. hash("sha256", $pass) с солью, это стойкий алгоритм
  4. Шифровать openssl_encrypt и хранить ключ в конфиге

Разбор

password_hash использует медленный алгоритм с солью (по умолчанию bcrypt, доступен Argon2id), а password_verify сравнивает за постоянное время. password_needs_rehash помогает обновлять хеши при смене параметров. MD5 и SHA-256 слишком быстрые: перебор на видеокартах. Шифрование обратимо: утечка ключа раскрывает все пароли.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.