Проверка Bcrypt
Проверьте, соответствует ли пароль хешу bcrypt. Вставьте пароль и хеш с префиксом $2a$, $2b$ или $2y$: инструмент прочитает из строки соль и стоимость, пересчитает хеш и сообщит, совпадают ли они. Это помогает разработчикам разбираться с проблемами входа, проверять миграции баз данных и тестировать хеши из PHP, Node.js или Python. Хеши со стоимостью выше 12 отклоняются; пароль никогда не отображается.
Часто задаваемые вопросы
Как работает проверка bcrypt?
Инструмент считывает из строки хеша версию, стоимость и соль, хеширует ваш пароль с теми же параметрами и сравнивает результат с сохраненным хешем. Если они идентичны, результат — совпадение, иначе — несовпадение.
Какие форматы хешей поддерживаются?
Инструмент принимает модульный формат crypt с префиксами $2a$, $2b$ и $2y$, двухзначной стоимостью и 53 символами соли и хеша. Он поддерживает PHP password_hash, Node.js bcrypt и bcryptjs, Python bcrypt и Spring Security.
Почему мой хеш отклонен?
Хеш должен содержать ровно 60 символов в формате $2b$10$ с последующими 53 символами из алфавита bcrypt. Убедитесь, что он не был обрезан столбцом базы данных и не заключен в кавычки. Хеши со стоимостью выше 12 отклоняются, чтобы сервис работал быстро.
Можно проверить известный пример?
Опубликованный тестовый вектор jBCrypt $2a$06$If6bvum7DFjUnE9p2uDeDu0YHzrHM6tf.iqN8.yx.jNN1ILEf7h0i соответствует паролю abc. Если ввести оба значения, результатом будет совпадение; любой другой пароль даст несовпадение.
Почему предел стоимости равен 12?
Проверка хеша обходится так же дорого, как его создание, а каждый шаг стоимости удваивает время. Значения выше 12 могут требовать нескольких секунд, поэтому инструмент отклоняет их, чтобы не перегружать сервер.
Показывает ли проверяющий инструмент мой пароль или сохраняет его?
Нет. Ответ содержит только хеш и результат проверки, но не пароль. Ничего не записывается в журнал и не сохраняется.
Какова максимальная длина пароля?
Bcrypt считывает только первые 72 байта пароля, а этот инструмент отклоняет более длинные пароли, не обрезая их. Если при создании хеша ваша система обрезала более длинный пароль, введите только его первые 72 байта.
В чем разница между $2a$, $2b$ и $2y$?
Эти префиксы обозначают исправления ошибок в старых реализациях: $2y$ появился благодаря исправлению crypt_blowfish в PHP, а $2b$ — благодаря исправлению OpenBSD для длинных паролей. Для корректных паролей длиной до 72 байт все три варианта вычисляют одинаковый хеш, поэтому инструмент проверяет каждый из них.
Можно ли здесь проверять хеши других алгоритмов?
Нет. Этот инструмент проверяет только хеши bcrypt. Для строк, начинающихся с $argon2, используйте Argon2 Verifier.
Почему новый хеш bcrypt моего пароля не совпадает с сохраненным?
В каждом хеше bcrypt используется новая случайная соль, поэтому хеши одного и того же пароля всегда представляют собой разные строки. Поэтому при проверке хеш пересчитывается с сохраненной солью, а не сравниваются два хеша.