Входные данные
Сгенерировать bcrypt-хеш
Проверить bcrypt хэш
Пароль выше сверяется с этим хешем — с той же проверкой формата, что и в API. Ничего не отправляется.
Вставьте bcrypt хэш для сравнения

Всё выполняется в вашем браузере: введённый текст, ключ HMAC и ожидаемый хеш не покидают устройство.

Зачем для паролей нужен bcrypt

bcrypt — это функция хеширования паролей, созданная ради медлительности. Она генерирует случайную соль для каждого пароля и повторяет расписание ключей Blowfish 2^cost раз, поэтому стоимость (раунды, показанные здесь) можно повышать по мере роста производительности железа. Результат выглядит как $2b$12$... со встроенными версией, стоимостью и солью. Поскольку соль случайна, хеширование hunter2 дважды даёт две разные, но одинаково верные строки, и обе проверяются против одного пароля.

Используйте bcrypt везде, где храните пароли пользователей, и предпочитайте его SHA-256, который слишком быстр: GPU вычисляют миллиарды SHA-256 хешей в секунду, тогда как стоимость bcrypt 12 стоит около четверти секунды на попытку и растёт вместе с настройкой стоимости. Подберите стоимость так, чтобы один хеш занимал примерно 100–250 мс на вашем сервере, затем сравнивайте пароль кандидата с сохранённым хешем через проверку с постоянным временем.

Как пользоваться генератором bcrypt

  1. Введите пароль для хеширования и сгенерируйте bcrypt-хеш.
  2. Повысьте или понизьте стоимость (раунды) под бюджет вашего сервера.
  3. Чтобы проверить пароль, вставьте существующий хеш $2 в поле проверки.
  4. Скопируйте хеш целиком — соль хранится внутри него.

Частые вопросы о bcrypt

Почему один и тот же пароль даёт разные хеши?

bcrypt каждый раз создаёт новую случайную соль и хранит её в выводе, поэтому каждый хеш уникален даже для одинаковых паролей.

Когда bcrypt лучше SHA-256?

Всегда для паролей. bcrypt намеренно медленный и с солью, что делает перебор и радужные таблицы непрактичными; SHA-256 же рассчитан на скорость.

Хешируется ли bcrypt здесь так же быстро, как на сервере?

Нет. Эта страница выполняет bcrypt на JavaScript, поэтому это медленнее нативной реализации — годится для демонстрации и проверки, но не для массовой генерации.

Всё выполняется в вашем браузере: введённый текст, ключ HMAC и ожидаемый хеш не покидают устройство.