Генератор Bcrypt

Генератор Bcrypt — бесплатный инструмент, который создаёт bcrypt-хеш пароля из любой введённой строки для безопасного хранения паролей.
Что такое bcrypt и безопасен ли он сегодня?
Bcrypt — алгоритм хеширования паролей, который по-прежнему подходит для их хранения при правильно выбранном параметре стоимости, хотя в новых системах часто предпочитают Argon2id. Нильс Провос и Давид Мазьер разработали bcrypt в 1999 году, использовав процедуру формирования ключей шифра Blowfish, чтобы намеренно увеличить вычислительные затраты на каждую попытку подбора пароля.
Хеширование необратимо. Поэтому приложение проверяет пароль, хешируя введённый вариант с сохранёнными параметрами, а не восстанавливая исходное значение. В отличие от алгоритмов общего назначения, таких как SHA-3, bcrypt создаёт автономную кодированную запись фиксированной длины, содержащую версию, стоимость, соль и контрольную сумму.
Стандартная запись bcrypt состоит из 60 символов ASCII. Её контрольная сумма содержит 184 бита и представлена 31 символом в собственной кодировке bcrypt, похожей на Base64. Bcrypt не считается криптографически взломанным, но у него есть ограничение, связанное с возрастом алгоритма: традиционные реализации обрабатывают не более 72 байт входных данных. Кроме того, Argon2id обеспечивает защиту за счёт высоких требований к памяти, которой у bcrypt нет.

Как пользоваться генератором bcrypt?
Введи строку, которую нужно хешировать, запусти генератор и скопируй значение из поля результата Bcrypt-хеш. Сохраняй результат целиком, а не только конечную контрольную сумму.
- Введи пароль или тестовую строку без изменений, сохранив регистр, пробелы и знаки препинания.
- Сгенерируй результат bcrypt.
- Скопируй все 60 символов, включая маркер версии в начале и стоимость.
- Сохрани результат в столбце базы данных, предназначенном для хеша пароля.
- При входе используй функцию проверки bcrypt, предоставляемую твоей платформой, а не создавай новый хеш для прямого текстового сравнения.

Обычно bcrypt использует новую случайную соль для каждого хеша. Поэтому при двукратном хешировании одних и тех же входных данных могут получиться две разные записи, и обе успешно пройдут проверку для исходного значения. Это нормальное поведение, благодаря которому одинаковые пароли не получают одинаковые сохранённые значения.
Обработка выполняется на сервере. Введённые данные передаются на сервер по HTTPS и не сохраняются. Если речь идёт о настоящем рабочем пароле, оцени, соответствует ли его ввод в стороннем онлайн-сервисе политике безопасности твоей организации.
Можно ли расшифровать или восстановить bcrypt-хеш?
Нет, bcrypt-хеш нельзя расшифровать, поскольку это не зашифрованные данные и в нём нет ключа дешифрования. На практике атакующий может только перебирать возможные пароли и проверять каждый вариант по сохранённому хешу.
Bcrypt замедляет такой перебор с помощью настраиваемой стоимости. Но он не сделает безопасным короткий, распространённый или ранее скомпрометированный пароль, и настойчивый злоумышленник всё равно может подобрать слабое значение. Соль не позволяет применять одну заранее рассчитанную таблицу сразу ко множеству учётных записей, однако она не является секретной и включена в хранимую запись.

Как читать результат bcrypt
Результат bcrypt обычно соответствует модульному формату crypt. Типичная структура выглядит так: $2y$12$[22-character salt][31-character checksum]. Это лишь иллюстрация формата, а не хеш какого-либо указанного пароля.
| Часть | Обычная длина | Назначение |
|---|---|---|
| Маркер версии | 4 символа | Обозначает вариант bcrypt, например $2y$ или $2b$. |
| Стоимость | 3 символа | Содержит двузначную стоимость и следующий за ней разделитель. |
| Соль | 22 символа | Кодирует случайную 128-битную соль. |
| Контрольная сумма | 31 символ | Кодирует 184-битную контрольную сумму bcrypt. |
Храни все эти части вместе. Изменение одного символа, обрезка значения или сохранение в слишком коротком столбце обычно приводят к ошибке проверки. В совместимых библиотеках маркер версии может различаться, поэтому приложениям следует использовать стандартные API для работы с паролями, а не самостоятельно разбирать и заново собирать запись.
Когда стоит использовать bcrypt?
Bcrypt подходит для хеширования паролей в системах, которые уже его поддерживают, особенно если важна совместимость с существующей базой данных или фреймворком. Алгоритм намеренно работает медленно и использует соль, поэтому он не подходит в качестве обычной контрольной суммы файла или идентификатора для дедупликации.
- Подходящие сценарии: хранение паролей приложений, тестирование миграции, проверка размеров полей базы данных и воспроизведение среды разработки, совместимой с bcrypt.
- Argon2id для новой системы хранения паролей: используй его, если платформа поддерживает Argon2id и позволяет правильно управлять параметрами памяти.
- SHA-3 для файлов и содержимого: используй его для проверки целостности файлов, создания отпечатков содержимого или дедупликации. Генератор SHA-3/384 и Генератор SHA-3/512 создают дайджесты общего назначения, а не записи паролей.
- Неподходящие сценарии: не используй bcrypt для цифровых подписей, аутентификации сообщений, шифрования или хранения данных, которые впоследствии потребуется восстановить.
Пробелы, знаки препинания и цифры обрабатываются как входные данные и не игнорируются. Перед обработкой bcrypt символы с диакритическими знаками и символы нелатинских алфавитов кодируются в байты. Поэтому обе системы должны формировать одинаковую последовательность байтов, используя согласованную кодировку символов и нормализацию Unicode. Ограничение в 72 байта здесь особенно важно, поскольку один символ Unicode может занимать несколько байт. Технически можно хешировать и пустой ввод, но пустой пароль не обеспечивает сколько-нибудь значимой защиты от перебора.
Частые вопросы
Сколько места в базе данных нужно для bcrypt-хеша?
Для обычной записи bcrypt выдели не менее 60 символов ASCII. Поле с небольшим запасом по длине может упростить будущий переход на другой алгоритм хеширования паролей. Двоичный столбец для стандартной кодированной формы не требуется.
Можно ли перенести существующие SHA-хеши паролей в bcrypt?
Нет, существующий дайджест SHA нельзя преобразовать в bcrypt-хеш исходного пароля, не зная сам пароль. Распространённый способ миграции состоит в том, чтобы проверить старый хеш при следующем входе пользователя, затем хешировать введённый пароль с помощью bcrypt или Argon2id и заменить старую запись.
Перед сохранением результата проверь, что скопированы все 60 символов, поле базы данных не обрезает значение, а принимающее приложение поддерживает указанный в записи маркер версии.
Популярные инструменты
Создайте свою собственную подпись и легко скачайте её с помощью нашего инструмента для генерации персонализированных электронных подписей.
Рассчитайте размер любого текста в байтах (B), килобайтах (KB) или мегабайтах (MB) с помощью нашего инструмента калькулятора размера текста.
Используйте инструмент обратного поиска IP, чтобы быстро и легко найти домен или хост, связанный с любым IP-адресом.
Используйте наш инструмент ping, чтобы быстро и эффективно проверить статус и время отклика любого веб-сайта, сервера или порта.
Инструмент поиска IP-адресов от Digily Link предоставляет подробную информацию о любом IP-адресе. Используйте этот бесплатный онлайн-сервис, чтобы получить полные данные об IP.
Мгновенно создайте бесплатную ссылку WhatsApp с помощью нашего генератора. Добавьте собственное сообщение и начинайте чаты одним нажатием без входа в систему и программирования.