Как пользоваться: Bcrypt генератор и проверка
- Введите пароль и выберите коэффициент стоимости (обычно 10–12).
- Нажмите Сгенерировать хеш. Каждый раз получается новый хеш, так как соль генерируется случайно.
- Чтобы проверить пароль, вставьте его и сохранённый хеш в блок Проверка пароля.
Что такое bcrypt?
Bcrypt — это функция хеширования паролей, разработанная в 1999 году и намеренно медленная. Каждый хеш включает случайную соль длиной 128 бит и коэффициент стоимости: объём вычислений растёт как 2cost, поэтому с ростом производительности железа можно увеличивать время хеширования. Это делает перебор украденных хешей гораздо дороже, чем для быстрых хешей вроде MD5 или SHA-256, которые сами по себе вообще не стоит использовать для паролей.
Структура хеша bcrypt
$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW
│ │ └ 22-char salt └ 31-char hash
$2b$ — это версия алгоритма, а 12 — коэффициент стоимости. $2a$, $2b$ и $2y$ дают одинаковые хеши для обычных паролей. $2y$ используют PHP и Apache, а $2b$ — текущий стандарт OpenBSD.
Выбор коэффициента стоимости
| Стоимость | Итерации | Применение |
|---|---|---|
| 4–8 | 16–256 | Только для модульных тестов |
| 10 | 1 024 | Распространённое значение по умолчанию (Laravel, Node bcrypt) |
| 12 | 4 096 | Хороший выбор для современных серверов (~250 мс) |
| 14+ | 16 384+ | Очень медленно; может ухудшить производительность входа |
Ориентируйтесь на 100–500 мс на один хеш на вашем боевом оборудовании. Время, которое показано выше, измеряется в вашем браузере и носит лишь ориентировочный характер.
Bcrypt нельзя «расшифровать»
Bcrypt работает в одну сторону: не существует ключа, который превращает хеш обратно в пароль. Проверка работает так: кандидат-пароль хешируется с солью и стоимостью, которые хранятся в хеше, а результаты сравниваются. Именно это и делает наша проверка. Учтите, что bcrypt игнорирует всё, что идёт после первых 72 байт пароля.
Для файлов HTTP Basic Auth используйте генератор htpasswd, а для создания надёжных паролей — генератор паролей.
Также ищут как: bcrypt checker, хеш $2y$, генератор хеша пароля.
Инструменты, которые хорошо сочетаются с Bcrypt генератор и проверка
- Генератор хешей — Мгновенно вычисляйте хеши MD5 и SHA для любого текста или файла, создавайте подписи HMAC и вставляйте ожидаемую контрольную сумму, чтобы проверить загрузку.
- HMAC-генератор — Вычисляйте HMAC-подписи с ключом для API-запросов и webhook и проверяйте, совпадает ли полученная подпись с ожидаемой.
- Проверка надёжности пароля — Введите пароль, и вы увидите, сколько возможных комбинаций он допускает, сколько времени понадобится на его взлом и какие шаблоны делают его слабее.
- JWT декодер — Вставьте JSON Web Token, чтобы просмотреть его заголовок и payload, узнать, когда истекает срок действия, и проверить подпись.
Часто задаваемые вопросы
Можно ли расшифровать хеш bcrypt?
Почему хеш каждый раз разный?
Совместимы ли $2a$, $2b$ и $2y$?
password_verify в PHP принимает все три варианта.