Генератор bcrypt-хешей
Создать хэш
Выше = медленнее и безопаснее.
Иногда у вас есть bcrypt-хеш из старого бэкапа и пароль в открытом виде, и нужно понять, совпадают ли они. Или у вас есть пароль и нужен хеш, который дал бы определённый фактор стоимости (cost). Этот инструмент делает и то и другое: введите пароль, он создаст новый хеш; вставьте хеш и пароль-кандидат, он скажет, проходит ли проверка, используя то же сравнение за постоянное время, что и проверка входа в продакшене.
Сгенерировать или проверить bcrypt
-
1
Выберите режим
Сгенерируйте новый хеш из пароля или проверьте пароль относительно существующего хеша `$2a$` / `$2b$` / `$2y$`.
-
2
Для генерации: введите текст и cost
Cost от 4 до 13; 10-12: обычный диапазон. Для каждого хеша создаётся случайная соль (salt) из 16 байт.
-
3
Для проверки: вставьте хеш и текст
Инструмент извлекает соль и cost из хеша и заново хеширует текст с теми же параметрами.
-
4
Прочитайте результат
Режим генерации копирует 60-символьный хеш; режим проверки возвращает зелёное совпадение или красное несовпадение.
Как устроен режим проверки
Для сохранённого хеша вроде:
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
Проверяющий механизм:
- Разбирает версию (
2b), cost (12), соль (первые 22 символа после cost) и дайджест (последний 31 символ). - Повторно запускает bcrypt для пароля-кандидата с извлечёнными солью и cost.
- Сравнивает получившийся дайджест с исходным с помощью сравнения за постоянное время.
Успешное сравнение даёт true; любое отличие даёт false.
Сравнение за постоянное время
Сравнение двух строк наивным == завершается сразу, как только отличается байт, это временной побочный канал, который при достаточном числе замеров может выдавать хеш по одному знаку за раз. Проверки паролей в продакшене (и этот инструмент) используют сравнение за постоянное время, которое всегда проверяет каждый байт, поэтому время решения не зависит от того, сколько первых байтов совпало.
Частые диагностические случаи
| Симптом | Вероятная причина |
|---|---|
| Проверка не проходит, хотя в пароле вы уверены | Концевые пробелы или BOM во вводе. Удалите и то и другое. |
Проверка не проходит, версия 2y |
Некоторые библиотеки не любят 2y; он валиден и совместим. В дальнейшем перехешируйте в 2b. |
| Хеш слишком короткий / повреждён | Это не bcrypt-хеш. MD5, это 32 hex-символа, SHA-1, 40, bcrypt, 60 с разделителями $. |
| Предупреждение о несовпадении cost | Сохранённый cost ниже минимума вашей политики. Перехешируйте при следующем успешном входе. |
Перехеширование при входе
Хорошая практика: когда пользователь успешно входит, проверьте, не ниже ли cost сохранённого хеша вашей текущей политики. Если ниже, перехешируйте пароль с новым cost и обновите базу данных. За несколько месяцев так можно поднять всю базу пользователей, никого не прося менять пароль.
Чего инструмент не делает
- Массовая проверка, рассчитан на один хеш за раз.
- Взлом или подбор перебором, атаки по словарю и через радужные таблицы намеренно вне области применения.
- Восстановление пароля, bcrypt односторонний; если пароль забыт, единственный путь, сброс.
Часто задаваемые вопросы
Он отправляется на наш сервер по зашифрованному соединению, потому что хеширование и проверка выполняются там. Он не сохраняется, не логируется и никогда не добавляется в ссылку страницы.
Соль генерируется случайно для каждого хеша. В этом весь смысл, два пользователя с одинаковым паролем получают разные хеши, что ломает радужные таблицы.
Да, именно это делает режим проверки: вставьте имеющийся хеш, вставьте пароль-кандидат, и инструмент подтвердит или отвергнет совпадение.
Да. Все современные варианты совместимы между собой, дайджест совместим между версиями; отличается только метка. Некоторым старым хешам $2$ из систем эпохи 2000-х может потребоваться библиотека с явной поддержкой устаревших форматов.
Сопутствующие инструменты
Кодировщик и декодировщик Base58
Кодируйте текст UTF-8 или шестнадцатеричные байты и безопасно декодируйте Base58 с алфавитом Bitcoin, Ripple или Flickr.
Кодировщик файлов Base64
Кодируйте любой файл (PDF, ZIP, изображение, исполняемый файл) в текст Base64 для встраивания в JSON, письма, YAML или data URI. Работает локально в браузере, без загрузки на сервер.
Кодировщик шифра A1Z26
Кодируйте текст шифром A1Z26 (A=1, B=2, ... Z=26) или декодируйте числовую последовательность обратно в буквы, выбрав разделитель.
Генератор SSL-сертификатов
Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.
Кодировщик и декодировщик Base85
Кодируйте и декодируйте Base85 в варианте Adobe Ascii85, который используется в файлах PostScript и PDF. Компактнее Base64 для двоичных данных.
Шифрование / расшифровка AES
Шифруйте и расшифровывайте текст низкого риска с AES-шифрами OpenSSL. Парольная фраза хэшируется SHA-256, а Base64-вывод содержит IV плюс шифротекст.
Инструмент доступен на других языках
- Trình tạo hash bcrypt [VI]
- Generator hashy bcrypt [PL]
- bcrypt Hash Oluşturucu [TR]
- bcrypt 哈希生成器 [ZH]
- bcrypt Hashジェネレーター [JA]
- bcrypt-hashgenerator [SV]
- bcrypt Hash Generator [EN]
- Generator Hash bcrypt [ID]
- Générateur de hachage bcrypt [FR]
- Generador de Hash bcrypt [ES]
- Gerador de Hash bcrypt [PT]
- ตัวสร้าง bcrypt Hash [TH]
- bcrypt 해시 생성기 [KO]
- bcrypt-Hash-Generator [DE]
- bcrypt-hashgenerator [NL]
- مولد Hash bcrypt [AR]
- Generatore di hash bcrypt [IT]