Перевірка 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 використовує нову випадкову сіль, тому два хеші одного пароля завжди є різними рядками. Саме тому під час перевірки хеш обчислюється повторно зі збереженою сіллю, а не порівнюються два хеші.