Всё выполняется в вашем браузере: введённый текст, ключ HMAC и ожидаемый хеш не покидают устройство.
Зачем для паролей нужен bcrypt
bcrypt — это функция хеширования паролей, созданная ради медлительности. Она генерирует случайную соль для каждого пароля и повторяет расписание ключей Blowfish 2^cost раз, поэтому стоимость (раунды, показанные здесь) можно повышать по мере роста производительности железа. Результат выглядит как $2b$12$... со встроенными версией, стоимостью и солью. Поскольку соль случайна, хеширование hunter2 дважды даёт две разные, но одинаково верные строки, и обе проверяются против одного пароля.
Используйте bcrypt везде, где храните пароли пользователей, и предпочитайте его SHA-256, который слишком быстр: GPU вычисляют миллиарды SHA-256 хешей в секунду, тогда как стоимость bcrypt 12 стоит около четверти секунды на попытку и растёт вместе с настройкой стоимости. Подберите стоимость так, чтобы один хеш занимал примерно 100–250 мс на вашем сервере, затем сравнивайте пароль кандидата с сохранённым хешем через проверку с постоянным временем.
Как пользоваться генератором bcrypt
- Введите пароль для хеширования и сгенерируйте bcrypt-хеш.
- Повысьте или понизьте стоимость (раунды) под бюджет вашего сервера.
- Чтобы проверить пароль, вставьте существующий хеш $2 в поле проверки.
- Скопируйте хеш целиком — соль хранится внутри него.
Частые вопросы о bcrypt
Почему один и тот же пароль даёт разные хеши?
bcrypt каждый раз создаёт новую случайную соль и хранит её в выводе, поэтому каждый хеш уникален даже для одинаковых паролей.
Когда bcrypt лучше SHA-256?
Всегда для паролей. bcrypt намеренно медленный и с солью, что делает перебор и радужные таблицы непрактичными; SHA-256 же рассчитан на скорость.
Хешируется ли bcrypt здесь так же быстро, как на сервере?
Нет. Эта страница выполняет bcrypt на JavaScript, поэтому это медленнее нативной реализации — годится для демонстрации и проверки, но не для массовой генерации.
Всё выполняется в вашем браузере: введённый текст, ключ HMAC и ожидаемый хеш не покидают устройство.
