Создавайте и проверяйте хеши паролей bcrypt. Настройте коэффициент работы и алгоритм.
С помощью CSPRNG генерируется случайная 128-битная (16-байтная) соль. Соли предотвращают атаки с радужными таблицами — одинаковые пароли создают разные хеши.
Алгоритм Eksblowfish выполняет 2^n итераций (n — ваш коэффициент стоимости). Удвоение стоимости удваивает время вычисления — делая атаки грубой силой пропорционально сложнее.
Вывод кодирует всё: $2b$12$[22-символьная соль][31-символьный хеш]. Префикс "$2b$12$" указывает bcrypt использовать cost=12. Отдельный столбец для соли не нужен.
$2b$12$eImiTAiTAi25sDB8iBjEJfF2PbO0oagzXCgKCQfHIFnOSuJl.J2
$2b$Версия алгоритма (2a, 2b, 2y)
12$Коэффициент стоимости (2^12 = 4096 раундов)
22 символаСоль, закодированная в Base64 (128 бит)
31 символХеш, закодированный в Base64 (184 бита)
| Стоимость | Итерации | Прибл. время | Рекомендация |
|---|---|---|---|
| 10 | 1 024 | ~50-100мс | Минимум для новых приложений |
| 11 | 2 048 | ~100-200мс | Хорошо для высоконагруженных API |
| 12 | 4 096 | ~200-400мс | Рекомендуемое значение по умолчанию (2025) |
| 13 | 8 192 | ~400-800мс | Высокозащищённые приложения |
| 14 | 16 384 | ~800мс-1.6с | Максимально практичная стоимость |
Приблизительное время на современном серверном CPU. Всегда проводите тестирование на целевом оборудовании.
Также смотрите Генератор хешей для MD5, SHA-1, SHA-256, SHA-512 и других криптографических хеш-функций.
Bcrypt — это функция хеширования паролей, разработанная Нилсом Провосом и Дэвидом Мазьером для OpenBSD в 1999 году. В отличие от MD5 или SHA, bcrypt намеренно медленный и ресурсоёмкий, что делает атаки грубой силой непрактичными. Он автоматически включает соль, предотвращая атаки с радужными таблицами. Используйте bcrypt (или Argon2) для всего хранения паролей — никогда не храните пароли в открытом виде или с быстрыми хешами (MD5/SHA).
Коэффициент стоимости (рабочий коэффициент) контролирует, насколько медленным является bcrypt. Каждое увеличение удваивает время вычисления. Для аутентификации пользователей стремитесь к 100-300 мс времени хеширования на вашем серверном оборудовании. Начните с 12 и проведите тестирование производительности — используйте наивысшее значение, при котором время входа остаётся ниже 500 мс. Выше — безопаснее, но медленнее. Стоимость 10 — минимально рекомендуемое значение для новых приложений в 2025 году.
Оба являются современными алгоритмами хеширования паролей. Bcrypt проверен временем (25+ лет) и широко поддерживается. Argon2 победил в конкурсе Password Hashing Competition (2015) и более устойчив к GPU-атакам благодаря использованию памяти. Argon2id (рекомендуемый вариант) сочетает Argon2i и Argon2d для устойчивости как к атакам по сторонним каналам, так и к GPU-атакам. Для новых приложений предпочтительным выбором является Argon2id.
Этот инструмент создаёт стандартные bcrypt-хеши, совместимые с любой библиотекой bcrypt. Хеширование полностью выполняется в вашем браузере с использованием библиотеки bcryptjs — пароли не отправляются на серверы. Однако всегда создавайте хеши паролей на стороне сервера в производственных приложениях. Клиентские демонстрации предназначены только для обучения и тестирования.
Все операции хеширования выполняются локально в вашем браузере. Пароли никогда не передаются и не хранятся.