Генератор і перевірка хешів Bcrypt
Перетворіть пароль на хеш bcrypt $2b$ або перевірте пароль щодо наявного хешу. Хешування виконується у Web Worker у вашому браузері — ніщо з введеного нікуди не надсилається.
Не вставляйте реальний пароль із продакшену в жоден онлайн-інструмент — і в цей також.
Вхідні дані
Пароль і cost
Для кожного хешу генерується нова 16-байтна сіль, тому однаковий пароль щоразу дає інший хеш. Це і є сенс солі, а не помилка.
Cost 10 означає 2^10 = 1,024 раундів налаштування ключа. Кожен крок угору подвоює роботу — і для того, хто перебирає викрадений файл паролів, і для вашого власного сервера під час кожного входу. Більшість продакшн-систем використовують значення від 10 до 12.
Усі три префікси дають однакові байти хешу для паролів коротших за 72 байти; відрізняється лише позначка. Вбудований crypt() у PHP не розпізнає $2b$, тож хеш $2b$ мовчки провалить password_verify(). Для PHP обирайте $2y$.
Хешування виконується у Web Worker всередині цієї вкладки. Пароль ніколи не надсилається до Wespner чи будь-кому іншому — надсилати його просто нема куди.
Результат
Хеш bcrypt
Натисніть «Згенерувати хеш».
Вартість, виміряна тут
У що вам обходиться це налаштування
Оцінка: один хеш заміряється в цій вкладці на cost 8, і кожен інший cost екстраполюється подвоєнням. Ваше власне обладнання й браузер визначають фактичне число.
Ці цифри — один потік JavaScript. Реальний зловмисник запускає нативний код на стійці GPU й працює на порядки швидше — саме тому cost factor має бути незручним, а не зручним. Той самий повзунок вирішує й те, скільки CPU з'їдає кожен ваш власний вхід.
Читання рядка
Що означають ці 60 символів
$2b$12$LQv3c1yqBWVHxkd0LHAkCOYUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq
Обидва блоки використовують власний base64-алфавіт bcrypt, який починається з ./ і ставить цифри в кінці — це не стандартний base64, і декодування його так, ніби це стандарт, дає неправильні байти. Це разом із поділом 22/31 — швидкий спосіб перевірити, що рядок справді є хешем bcrypt, а не просто схожий на нього.
Вибір алгоритму
bcrypt, scrypt чи Argon2?
Цей інструмент навмисно працює лише з bcrypt. Ось коли це правильний вибір, а коли ні.
Навмисно повільний, але покладається лише на процесорний час і фіксовані 4 КБ пам'яті. GPU та FPGA розпаралелюють його набагато краще, ніж новіші схеми. Це досі цілком гідний вибір, підтримуваний буквально всюди, а його найнесподіванішою гострою гранню є ліміт пароля в 72 байти.
Додає налаштовувану вартість пам'яті, тож зловмиснику потрібна оперативна пам'ять на кожну спробу, а не лише ядра. Розпаралелити дешево складніше, ніж bcrypt.
Переможець Password Hashing Competition 2015 року і те, що OWASP тепер радить для нових систем: окремі налаштування часу, пам'яті та паралелізму, а варіант id стійкий і до GPU, і до атак через побічні канали. Якщо починаєте з нуля й платформа це підтримує — використовуйте його. Якщо підтримуєте систему, що вже зберігає хеші $2y$, bcrypt з розумним cost — не аварійна ситуація, перехешуйте під час наступного входу.
Доказ
Перевірте цю сторінку за опублікованими тестовими векторами
Інструмент хешування, який просить довіри, має бути перевірюваним. Це еталонні вектори bcrypt, які використовують реалізації на основі OpenBSD; сторінка перераховує кожен із власної солі й порівнює символ за символом, а потім хешує й повторно перевіряє одноразовий пароль на двох значеннях cost.
У пакеті виконується 6 опублікованих векторів плюс два повні цикли.
Керуєте власним ігровим сервером?
Ігрові сервери Wespner із захистом від DDoS, дисками NVMe та активацією за кілька хвилин.