Bcrypt генератор

5 от 2 оценки
Bcrypt генератор

Bcrypt генератор е безплатен инструмент, който създава bcrypt хеш на парола от всеки въведен низ, за да може паролата да се съхранява сигурно.

Какво е bcrypt и все още ли е сигурен?

Bcrypt е алгоритъм за хеширане на пароли, който остава подходящ за съхранението им, ако е настроен с достатъчна изчислителна сложност, макар че при по-новите системи често се предпочита Argon2id. Нилс Провос и Давид Мазиер създават bcrypt през 1999 г., като използват процеса за генериране на ключове на шифъра Blowfish, за да направят всяка проверка на предполагаема парола умишлено ресурсоемка.

Хеширането е еднопосочен процес. Затова приложението проверява дадена парола, като хешира въведения вариант със съхранените параметри, вместо да възстановява оригинала. За разлика от алгоритми с общо предназначение като SHA-3, bcrypt създава самостоятелен кодиран запис с фиксирана дължина, който съдържа версията, изчислителната сложност, солта и контролната сума.

Стандартният bcrypt запис е дълъг 60 ASCII знака. Контролната му сума представлява 184 бита и се изписва с 31 знака в собственото кодиране на bcrypt, подобно на Base64. Bcrypt не се смята за криптографски компрометиран, но има ограничение, свързано с възрастта му: традиционните реализации обработват най-много 72 входни байта. Argon2id осигурява и защита чрез високи изисквания към паметта, каквато bcrypt няма.

Схема: входният текст минава през функцията Bcrypt и дава хеш с фиксирана дължина, който не може да бъде обърнат

Как се използва Bcrypt генераторът?

Въведи низа, който искаш да хешираш, стартирай генератора и копирай стойността от полето Bcrypt хеш. Запази целия резултат, вместо да извличаш само крайната контролна сума.

  1. Въведи точната парола или тестов низ, включително главните и малките букви, интервалите и пунктуацията.
  2. Генерирай bcrypt резултата.
  3. Копирай всичките 60 знака, включително началния маркер за версията и стойността за изчислителната сложност.
  4. Запази резултата в колоната за хешове на пароли в базата данни.
  5. При влизане използвай функцията на платформата за проверка на bcrypt, вместо да генерираш нов хеш и да сравняваш текстовите стойности директно.
Инструментът Bcrypt генератор в digily.link с формата за въвеждане

Обикновено bcrypt използва нова случайна сол за всеки хеш. Затова двукратното хеширане на един и същ вход може да създаде два различни записа, които успешно се проверяват спрямо същия вход. Това е очаквано поведение и не позволява еднаквите пароли да имат еднакви съхранени стойности.

Обработката се извършва на сървъра. Въведените данни се изпращат до него през HTTPS и не се съхраняват. Ако става дума за реална парола от работеща система, прецени дали въвеждането й в онлайн услуга на трета страна отговаря на политиката за сигурност на организацията ти.

Може ли bcrypt хеш да бъде декриптиран или обърнат?

Не, bcrypt хешът не може да бъде декриптиран, защото не представлява шифровани данни и не съдържа ключ за декриптиране. На практика атаката срещу него се състои в отгатване на възможни пароли и проверка на всяко предположение спрямо съхранения хеш.

Bcrypt забавя този процес чрез настройваемата си изчислителна сложност. Той не може да направи сигурна кратка, често използвана или вече изтекла парола, а упорит нападател все пак може да открие слаб вход. Солта не позволява една предварително изчислена таблица да се използва повторно срещу много профили, но тя не е тайна и е включена в съхранения запис.

Примерен резултат, създаден от инструмента Bcrypt генератор

Как се разчита bcrypt резултат?

Bcrypt резултатът обикновено следва формата modular crypt. Типичната му структура е $2y$12$[22-character salt][31-character checksum]. Това е само илюстрация на формата, а не хеш на конкретно посочена парола.

Част Типична дължина Предназначение
Маркер за версия 4 знака Обозначава варианта на bcrypt, например $2y$ или $2b$.
Изчислителна сложност 3 знака Съдържа двуцифрената стойност за сложност, последвана от разделител.
Сол 22 знака Кодира 128-битова случайна сол.
Контролна сума 31 знака Кодира 184-битовата контролна сума на bcrypt.

Съхранявай всички тези части заедно. Промяната на знак, съкращаването на стойността или записването й в твърде къса колона обикновено води до неуспешна проверка. Маркерът за версия може да се различава между съвместими библиотеки, затова приложенията трябва да използват утвърдени API за пароли, вместо сами да анализират и сглобяват записа.

Кога е подходящо да използваш bcrypt?

Използвай bcrypt за хеширане на пароли в системи, които вече го поддържат, особено когато е важна съвместимостта със съществуваща база данни или софтуерна рамка. Алгоритъмът умишлено работи бавно и използва сол, което го прави неподходящ за общи контролни суми на файлове или идентификатори за премахване на дублирани данни.

  • Подходящи приложения: пароли за приложения, тестове при миграция, проверка на размера на полета в база данни и възпроизвеждане на среда за разработка, съвместима с bcrypt.
  • Вместо него използвай Argon2id: при нова система за пароли, ако платформата го поддържа и настройките му за използване на паметта могат да се управляват правилно.
  • Вместо него използвай SHA-3: за проверка на целостта на файлове, цифрови отпечатъци на съдържание или премахване на дубликати. SHA-3/384 генератор и Генератор SHA-3/512 създават хешове с общо предназначение, а не записи за пароли.
  • Не използвай bcrypt: за цифрови подписи, удостоверяване на съобщения, шифроване или съхранение на данни, които по-късно трябва да бъдат възстановени.

Интервалите, пунктуацията и числата се обработват като входни данни, а не се пренебрегват. Знаците с диакритични знаци и знаците от нелатински азбуки се кодират като байтове, преди bcrypt да започне обработката. Затова и двете системи трябва да създават едни и същи байтове, включително чрез еднакво кодиране на знаците и нормализация на Unicode. Ограничението от 72 байта е особено важно тук, защото един Unicode знак може да заема повече от един байт. Технически може да се хешира и празен вход, но празната парола не осигурява никаква съществена защита срещу отгатване.

Често задавани въпроси

Колко място в базата данни е нужно за bcrypt хеш?

Предвиди поне 60 ASCII знака за стандартен bcrypt запис. Малко по-широко поле може да улесни бъдеща миграция към друг алгоритъм за пароли, а за стандартния кодиран формат не е необходима двоична колона.

Мога ли да прехвърля съществуващи SHA хешове на пароли към bcrypt?

Не можеш да преобразуваш съществуващ SHA хеш в bcrypt хеш на оригиналната парола, без да знаеш самата парола. Често използван подход за миграция е старият хеш да се провери при следващото влизане на потребителя, след което въведената парола да се хешира с bcrypt или Argon2id и старият запис да бъде заменен.

Преди да запазиш резултата, провери дали си копирал пълната стойност от 60 знака, дали полето в базата данни не я съкращава и дали приложението, което я получава, поддържа маркера за версия в записа.

Сподели

Популярни инструменти