Generator Bcrypt

5 din 2 evaluări
Generator Bcrypt

Generatorul Bcrypt este un instrument gratuit care creează un hash bcrypt pentru stocarea sigură a parolelor, pornind de la orice șir introdus.

Ce este bcrypt și mai este sigur?

Bcrypt este un algoritm de hashing pentru parole care rămâne o opțiune acceptabilă pentru stocarea acestora dacă este configurat cu un factor de cost adecvat, deși sistemele mai noi preferă adesea Argon2id. Niels Provos și David Mazières au conceput bcrypt în 1999, folosind procesul de programare a cheilor din cifrul Blowfish pentru a face fiecare încercare de ghicire a parolei intenționat costisitoare.

Hashingul este un proces unidirecțional. Prin urmare, o aplicație verifică parola calculând hashul unei valori candidate cu parametrii stocați, nu recuperând parola inițială. Spre deosebire de algoritmii de uz general precum SHA-3, bcrypt produce o înregistrare codificată autonomă, cu lungime fixă, care conține versiunea, costul, sarea și suma de control.

O înregistrare bcrypt standard are 60 de caractere ASCII. Suma sa de control reprezintă 184 de biți și apare sub forma a 31 de caractere, în codificarea proprie bcrypt, asemănătoare cu Base64. Bcrypt nu este considerat compromis din punct de vedere criptografic, dar are o limitare cauzată de vechimea sa: implementările tradiționale procesează cel mult 72 de octeți de intrare. Argon2id oferă și protecție bazată pe utilizarea intensivă a memoriei, pe care bcrypt nu o are.

Diagramă: textul introdus trece prin funcția Bcrypt și produce un rezumat de lungime fixă, care nu poate fi inversat

Cum folosesc Generatorul Bcrypt?

Introdu șirul pentru care vrei să calculezi hashul, pornește generatorul și copiază valoarea afișată în câmpul de rezultat Hash Bcrypt. Salvează rezultatul complet, nu doar suma de control de la final.

  1. Folosește parola sau șirul de test exact, păstrând literele mari și mici, spațiile și semnele de punctuație.
  2. Generează rezultatul bcrypt.
  3. Copiază toate cele 60 de caractere, inclusiv marcatorul de versiune și costul de la început.
  4. Salvează rezultatul în coloana pentru hashurile parolelor din baza de date.
  5. La autentificare, folosește funcția de verificare bcrypt oferită de platformă, în loc să generezi un hash și să compari direct textele.
Instrumentul Generator Bcrypt pe digily.link, cu formularul său de introducere

În mod normal, bcrypt folosește o sare aleatorie nouă pentru fiecare hash. De aceea, dacă procesezi aceeași valoare de două ori, poți obține două înregistrări diferite, ambele fiind valide pentru acea valoare. Acest comportament este normal și împiedică parolele identice să aibă aceleași valori stocate.

Procesarea are loc pe server. Datele introduse sunt trimise către server prin HTTPS și nu sunt stocate. Dacă este vorba despre o parolă reală folosită în producție, verifică dacă introducerea ei într-un serviciu online terț respectă politica de securitate a organizației tale.

Un hash bcrypt poate fi decriptat sau inversat?

Nu. Un hash bcrypt nu poate fi decriptat, deoarece nu reprezintă date criptate și nu conține nicio cheie de decriptare. În practică, atacarea lui presupune încercarea unor parole posibile și verificarea fiecărei variante în raport cu hashul stocat.

Bcrypt încetinește acest proces de ghicire prin factorul său de cost configurabil. Totuși, nu poate face sigură o parolă scurtă, frecventă sau divulgată anterior, iar un atacator hotărât poate descoperi în continuare valorile slabe. Sarea împiedică reutilizarea aceluiași tabel precalculat pentru mai multe conturi, dar nu este secretă și face parte din înregistrarea stocată.

Exemplu de rezultat produs de instrumentul Generator Bcrypt

Cum interpretezi un rezultat bcrypt

Un rezultat bcrypt urmează de obicei formatul modular crypt. O structură reprezentativă este $2y$12$[22-character salt][31-character checksum]. Aceasta este doar o ilustrare a formatului, nu hashul unei parole specificate.

Componentă Lungime obișnuită Rol
Marcator de versiune 4 caractere Identifică o variantă bcrypt, precum $2y$ sau $2b$.
Cost 3 caractere Înregistrează costul din două cifre, urmat de un separator.
Sare 22 de caractere Codifică o sare aleatorie de 128 de biți.
Sumă de control 31 de caractere Codifică suma de control bcrypt de 184 de biți.

Păstrează toate aceste componente împreună. Modificarea unui caracter, scurtarea valorii sau salvarea ei într-o coloană prea îngustă va face, de regulă, ca verificarea să eșueze. Marcatorul de versiune poate varia între bibliotecile compatibile, așa că aplicațiile ar trebui să folosească API-uri consacrate pentru parole, în loc să analizeze și să reconstruiască singure înregistrarea.

Când ar trebui să folosesc bcrypt?

Folosește bcrypt pentru hashingul parolelor în sistemele care îl acceptă deja, mai ales când contează compatibilitatea cu o bază de date sau cu un framework existent. Algoritmul este lent în mod intenționat și folosește sare, ceea ce îl face nepotrivit pentru sume de control generale ale fișierelor sau identificatori de deduplicare.

  • Utilizările potrivite includ parolele aplicațiilor, testarea migrărilor, verificarea dimensiunilor câmpurilor din baza de date și reproducerea unui mediu de dezvoltare compatibil cu bcrypt.
  • Folosește Argon2id în schimb pentru un sistem nou de parole, dacă platforma îl acceptă și setările sale de memorie pot fi gestionate corect.
  • Folosește SHA-3 în schimb pentru integritatea fișierelor, amprentele conținutului sau deduplicare. Generatorul SHA-3/384 și Generatorul SHA-3/512 produc rezumate de uz general, nu înregistrări pentru parole.
  • Nu folosi bcrypt pentru semnături digitale, autentificarea mesajelor, criptare sau stocarea datelor care trebuie recuperate ulterior.

Spațiile, semnele de punctuație și cifrele sunt procesate ca date de intrare, nu ignorate. Caracterele cu diacritice și cele din alfabete nelatine sunt codificate în octeți înainte ca bcrypt să le proceseze. Prin urmare, ambele sisteme trebuie să producă aceiași octeți, folosind inclusiv aceeași codificare a caracterelor și aceeași normalizare Unicode. Limita de 72 de octeți este deosebit de importantă în acest caz, deoarece un caracter Unicode poate ocupa mai mult de un octet. Din punct de vedere tehnic, și o intrare goală poate fi procesată, dar o parolă goală nu oferă nicio protecție semnificativă împotriva ghicirii.

Întrebări frecvente

Cât spațiu ocupă un hash bcrypt în baza de date?

Rezervă cel puțin 60 de caractere ASCII pentru o înregistrare bcrypt convențională. Un câmp puțin mai larg poate fi util pentru viitoare migrări către alți algoritmi pentru parole, iar pentru forma codificată standard nu este necesară o coloană binară.

Pot migra hashurile SHA existente la bcrypt?

Nu poți transforma un rezumat SHA existent în hashul bcrypt al parolei inițiale fără să cunoști parola respectivă. O metodă frecventă de migrare este verificarea vechiului hash la următoarea autentificare a utilizatorului, urmată de procesarea parolei introduse cu bcrypt sau Argon2id și înlocuirea vechii înregistrări.

Înainte să salvezi rezultatul, verifică dacă ai copiat valoarea completă de 60 de caractere, dacă acel câmp din baza de date nu o trunchiază și dacă aplicația care o primește acceptă marcatorul de versiune din înregistrare.

Instrumente populare