Я хочу знать, как пароли шифруются и хранятся на сервере. Теперь, если случайные числа используются в шифровании паролей, то как распознается наш пароль, если это правда или нет, когда мы входим в систему?Как работает шифрование паролей?
ответ
Обычный способ сделать это не путем шифрования паролей, а их хэширования. Поэтому вы фактически не храните пароль, а скорее хешированное значение пароля, поэтому, когда пользователь регистрирует ваш хэш-пароль и затем сравнивает, совпадает ли хеш-значение с сохраненным значением.
Чтобы добавить дополнительную безопасность, это также хорошая практика «солить ее». Например, вы комбинируете пароль с чем-то другим и именем пользователя и объединяете их вместе.
Просто использовать хеш-функцию недостаточно, и просто добавление соли делает мало для улучшения безопасности. Вместо этого перебирайте HMAC со случайной солью в течение приблизительно 100 мс и сохраняйте соль с хешем. Используйте такие функции, как 'PBKDF2' (aka' Rfc2898DeriveBytes'), 'password_hash' /' password_verify', 'Bcrypt' и аналогичные функции. Дело в том, чтобы заставить злоумышленника потратить много времени на поиск паролей грубой силой. Защита ваших пользователей важна, используйте безопасные пароли. – zaph
** Не шифруйте пароли **, когда злоумышленник получает БД, он также получит ключ шифрования. – zaph