Що робить інструмент
bcrypt — функція хешування паролів, навмисно зроблена повільною. На відміну від MD5 чи SHA-256, які обчислюються мільярди разів на секунду, bcrypt має налаштовувану вартість, що робить кожну спробу дорогою для зловмисника, який викрав базу даних. Поряд з Argon2 і scrypt це досі один із найпоширеніших способів зберігати паролі.
Інструмент уміє дві речі:
- Хешувати: перетворити пароль на хеш bcrypt із вибраною вартістю та префіксом версії.
- Перевірити: з’ясувати, чи відповідає пароль наявному хешу bcrypt, наприклад із вашої бази даних або seed-файлу фреймворку.
Як користуватися
- Введіть Пароль або натисніть Приклад.
- У режимі Хешувати виберіть Вартість і Версію. Хеш з’являється одразу; натисніть Нова сіль, щоб отримати інший.
- У режимі Перевірити вставте Хеш bcrypt для перевірки. Результат покаже, чи збігається пароль.
Як читати хеш bcrypt
Хеш на кшталт $2b$10$./3kakECWB0QfIgYzIqciuv449HNnwGbgExtJQQwQ1MofonthOdoK складається з чотирьох частин: версії 2b, вартості 10 (2¹⁰ раундів підготовки ключа), солі з 22 символів і контрольної суми з 31 символу. Усе, що серверу знадобиться для подальшої перевірки пароля, міститься в цьому одному рядку, тому зберігати треба лише хеш.
Обмеження
bcrypt читає лише перші 72 байти пароля. Довші паролі або паролі з великою кількістю не-ASCII символів (кожен займає 2–4 байти в UTF-8) мовчки обрізаються. Інструмент попередить, якщо це сталося. Якщо потрібно приймати дуже довгі парольні фрази, спершу хешуйте їх або розгляньте Argon2id.
Часті запитання
› Чому для того самого пароля щоразу виходить інший хеш?
Кожен хеш використовує нову випадкову сіль довжиною 16 байт, яка зберігається в самому хеші. Це навмисно: однакові паролі не дають однакових хешів. Щоб перевірити пароль, використовуйте режим «Перевірити», а не порівнюйте рядки хешів.
› Яку вартість вибрати?
Виберіть найвищу вартість, яку сервер витримує під час кожного входу, — нині зазвичай 10–12. Кожен крок подвоює роботу. Виміряйте на робочому обладнанні; поширена ціль — 100–300 мс на хеш.
› Чим відрізняються $2a$, $2b$ і $2y$?
Це той самий алгоритм. $2b$ — поточний префікс OpenBSD, $2y$ пише password_hash у PHP, $2a$ — старіший. Більшість бібліотек приймають усі три, тож виберіть той, який очікує ваша система.
› Чи надсилається мій пароль кудись?
Ні. Хешування й перевірка виконуються у браузері. Пароль і хеш, що перевіряється, зберігаються лише в пам’яті цієї сторінки: вони не зберігаються і не додаються до посилань для поширення.