Песочница bcrypt
Хешируйте пароли bcrypt со стоимостью 4–16, используйте свою 22-символьную соль, смотрите разбор хеша на версию, cost, соль и хеш и проверяйте хеши.
Использовано 0 из 72 байт
2^cost = 1 024 раундов
Оставьте пустым для случайной соли.
bcrypt (Provos и Mazières, 1999) — адаптивный хеш: каждое +1 к стоимости удваивает объём работы. Выберите максимальную стоимость, при которой вход на сервере занимает не больше ~250 мс (10 и выше). Вывод использует префикс $2b$; хеши $2a$ и $2y$ проверяются так же.
Проверить пароль по хешу
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Песочница bcrypt?
Экспериментируйте с bcrypt: выбирайте параметр cost, вводите конкретную соль или используйте случайную и смотрите итоговый хеш, разбитый на версию, cost, соль и хеш, а также время вычисления. Проверка сверяет пароли с хешами $2a$, $2b$ и $2y$.
Как пользоваться Песочница bcrypt
- Введите Пароль; подсказка покажет, сколько из 72 байт bcrypt используется.
- Задайте Стоимость (cost) (4–16) и при желании 22-символьную Соль.
- Нажмите Хешировать, чтобы увидеть закодированный хеш, его части и затраченное время.
- Вставьте любой хеш bcrypt в панель проверки, чтобы проверить пароль.
Пример
Password password, cost 4, salt abcdefghijklmnopqrstuu
$2b$04$abcdefghijklmnopqrstuughE8Ev8uGFaUgY2cNEySvxngrb/Jzdm
Совпадает с результатом pyca/bcrypt для того же пароля и соли.
Когда использовать Песочница bcrypt
Используйте, чтобы воспроизвести хеш bcrypt с известной солью, подобрать cost по замерам времени или проверить хеш из базы данных при отладке. Для новых разработок предпочтителен Argon2id.
Как работает Песочница bcrypt
bcrypt (Provos и Mazières, 1999) выполняет дорогую настройку ключа EksBlowfish 2^cost раз, затем шифрует «OrpheanBeholderScryDoubt» 64 раза. 16-байтовая соль и 23-байтовый результат записываются в собственном алфавите Base64 bcrypt (./A–Za–z0–9). Вычисление использует hash-wasm (WebAssembly). Пароли длиннее 72 байт UTF-8 отклоняются, потому что bcrypt игнорирует всё после 72-го байта.
Распространенные Случаи Использования
- Замер времени работы для каждого значения cost
- Воспроизведение тестового вектора с фиксированной солью
- Проверка того, что PHP-хеш $2y$ проходит верификацию
- Обучение структуре хешей bcrypt
Часто Задаваемые Вопросы
Какую стоимость (cost) использовать?
Не менее 10 (OWASP); выбирайте наибольшее значение, при котором хеширование на вашем сервере занимает не более примерно 250 мс. Каждый +1 удваивает время.
Чем отличаются $2a$, $2b$ и $2y$?
Они отмечают исправления ошибок старых реализаций. Для паролей до 72 байт они дают один и тот же хеш, и все три здесь проходят проверку.
Почему мой длинный пароль отклонён?
bcrypt использует только первые 72 байта. Молчаливое усечение привело бы к коллизиям разных паролей, поэтому инструмент отказывает.