Bcrypt парола Генератор
Генерирайте незабавно защитени bcrypt хешове на пароли във вашия браузър. Изберете своя разходен фактор и хеширайте паролите от страна на клиента — напълно лично и безплатно.
Генерирайте незабавно защитени bcrypt хешове на пароли във вашия браузър. Изберете своя разходен фактор и хеширайте паролите от страна на клиента — напълно лично и безплатно.
bcrypt е функция за хеширане на пароли, проектирана от Niels Provos и David Mazières през 1999 г., извлечена от шифъра Blowfish. За разлика от функциите за хеширане с общо предназначение като SHA-256, bcrypt е умишлено бавен - и конфигурируемо бавен, чрез параметър на разходите - което е точно свойството, от което се нуждае един хешър на пароли. По-бърза хеш функция позволява на атакуващите да форсират повече кандидати в секунда; по-бавният ги ограничава.
bcrypt също така автоматично включва сол за всяка парола, елиминирайки цял клас атаки, базирани на предварително изчислени дъгови таблици. Параметърът сол и цена се съхраняват като част от изхода на bcrypt, така че проверката се нуждае само от съхранения хеш и кандидат паролата — без отделно управление на солта. Тази комбинация от бавност, сол и самостоятелен формат направи bcrypt хаша на паролата по подразбиране в продължение на две десетилетия и силен избор днес.
Съществуват модерни алтернативи. Argon2 спечели състезанието за хеширане на пароли за 2015 г. и предлага устойчивост на паметта в допълнение към устойчивостта на времето. scrypt предлага подобни свойства. За нови дизайни Argon2id е препоръчителният избор. bcrypt остава приемлив и широко разпространен, особено в среди, където Argon2 не е наличен.
Съхраняването на пароли като обикновен текст е злоупотреба. Съхраняването им с бърз хеш като SHA-256 е малко по-добро — съвременните графични процесори изчисляват милиарди хешове SHA-256 в секунда, което прави атаките с груба сила срещу всяка обща парола осъществими за часове. Умишлената бавност на bcrypt измества икономиката: при коефициент на цена 12, атакуващият прекарва приблизително 250 ms на кандидат парола, което прави грубата сила непрактична за всяка нетривиална парола.
Автоматичната сол за всяка парола на bcrypt също побеждава атаките на таблицата на дъгата. Двама потребители с една и съща парола произвеждат различни bcrypt хешове, защото техните соли се различават. Компрометирането на базата данни с пароли не позволява на атакуващия бързо да идентифицира общи пароли или попадения в предварително изчислена таблица.
Въведете парола, изберете цена, вземете хеша.
bcrypt използва модифицирана фаза на настройка на ключ на Blowfish шифър, повторена 2^cost пъти. Коефициентът на разходите е логаритмичен — цена 12 е два пъти по-бавна от цена 11, четири пъти по-бавна от цена 10. Това логаритмично мащабиране позволява на администраторите да увеличават разходите с течение на времето с подобряването на хардуера, без да препроектират системата.
Изходният формат е $version$cost$saltAndHash, където saltAndHash е base64-кодиран с персонализирана азбука. Версията обикновено е $2b$ (модерният вариант с коригиран бъг с обгръщане) или $2y$ (специфична за PHP, еквивалент). Солта е 16 байта; хешът е 24 байта; заедно те кодират до 53 символа на custom-base64.
Максималната дължина на входа е 72 байта (ограничение за дължина на ключа Blowfish). По-дългите пароли се съкращават тихо, което е дългогодишна странност на bcrypt. Най-добрата практика е или да ограничите дължината на паролата до 72 байта, или предварително да хеширате с SHA-256, за да нормализирате дължината преди bcrypt.