Bcrypt generator

5 af 2 bedømmelser
Bcrypt generator

Bcrypt generator er et gratis værktøj, der opretter en bcrypt-hash af en adgangskode ud fra en vilkårlig tekststreng, så adgangskoden kan gemmes sikkert.

Hvad er bcrypt, og er det stadig sikkert?

Bcrypt er en algoritme til hashing af adgangskoder. Den er stadig egnet til lagring af adgangskoder, når den konfigureres med en passende cost-værdi, men nyere systemer foretrækker ofte Argon2id. Niels Provos og David Mazières udviklede bcrypt i 1999. De brugte nøgleplanlægningen fra Blowfish-krypteringsalgoritmen til bevidst at gøre hvert forsøg på at gætte en adgangskode beregningstungt.

Hashing går kun én vej. En applikation kontrollerer derfor en adgangskode ved at hashe en kandidat med de gemte parametre i stedet for at gendanne originalen. I modsætning til generelle algoritmer som SHA-3 opretter bcrypt en selvstændig kodet post med fast længde, som indeholder version, cost-værdi, salt og kontrolsum.

En bcrypt-standardpost består af 60 ASCII-tegn. Kontrolsummen repræsenterer 184 bit og vises som 31 tegn i bcrypts egen Base64-lignende kodning. Bcrypt anses ikke for at være kryptografisk brudt, men algoritmens alder medfører en begrænsning: Traditionelle implementeringer behandler højst 72 inputbytes. Argon2id giver desuden en hukommelseskrævende beskyttelse, som bcrypt ikke har.

Diagram: inputtekst går gennem Bcrypt-funktionen og giver en hash med fast længde, som ikke kan føres tilbage

Hvordan bruger jeg Bcrypt generator?

Indtast den streng, der skal hashes, kør generatoren, og kopiér værdien fra resultatfeltet Bcrypt Hash. Gem hele resultatet i stedet for kun at udtrække den afsluttende kontrolsum.

  1. Brug den nøjagtige adgangskode eller teststreng, inklusive store og små bogstaver, mellemrum og tegnsætning.
  2. Generér bcrypt-resultatet.
  3. Kopiér alle 60 tegn, inklusive versionsmarkøren og cost-værdien i begyndelsen.
  4. Gem resultatet i databasens kolonne til adgangskodehashes.
  5. Brug platformens funktion til bcrypt-verifikation ved login. Du bør ikke generere en ny hash og sammenligne teksten direkte.
Værktøjet Bcrypt generator på digily.link med dets inputformular

Bcrypt bruger normalt et nyt tilfældigt salt til hver hash. Hvis det samme input hashes to gange, kan det derfor give to forskellige poster, som begge kan verificeres mod det pågældende input. Det er forventet og forhindrer, at ens adgangskoder får identiske gemte værdier.

Behandlingen foregår på serveren. Dit input sendes til serveren via HTTPS og gemmes ikke. Hvis der er tale om en rigtig adgangskode fra et produktionssystem, bør du overveje, om det er i overensstemmelse med organisationens sikkerhedspolitik at indtaste den i en ekstern onlinetjeneste.

Kan en bcrypt-hash dekrypteres eller gendannes?

Nej, en bcrypt-hash kan ikke dekrypteres, fordi den ikke består af krypterede data og ikke indeholder en dekrypteringsnøgle. I praksis angribes den ved at gætte mulige adgangskoder og kontrollere hvert gæt mod den gemte hash.

Bcrypt gør denne proces langsommere ved hjælp af den konfigurerbare cost-værdi. Algoritmen kan ikke gøre en kort, almindelig eller tidligere lækket adgangskode sikker, og en målrettet angriber kan stadig finde svage input. Saltet forhindrer angribere i at genbruge én forhåndsberegnet tabel på tværs af mange konti, men det er ikke hemmeligt og indgår i den gemte post.

Eksempel på et resultat fra værktøjet Bcrypt generator

Sådan læser du et bcrypt-resultat

Et bcrypt-resultat følger normalt modular crypt-formatet. En typisk struktur er $2y$12$[22-character salt][31-character checksum]. Dette illustrerer kun formatet og er ikke hashen af en bestemt adgangskode.

Del Typisk længde Formål
Versionsmarkør 4 tegn Angiver en bcrypt-variant, for eksempel $2y$ eller $2b$.
Cost-værdi 3 tegn Gemmer den tocifrede cost-værdi efterfulgt af en separator.
Salt 22 tegn Koder et tilfældigt salt på 128 bit.
Kontrolsum 31 tegn Koder bcrypt-kontrolsummen på 184 bit.

Behold alle delene samlet. Hvis du ændrer et tegn, beskærer værdien eller gemmer den i en kolonne, der er for kort, vil verificeringen normalt mislykkes. Versionsmarkøren kan variere mellem kompatible biblioteker. Applikationer bør derfor bruge etablerede API'er til adgangskoder frem for selv at fortolke og genopbygge posten.

Hvornår bør jeg bruge bcrypt?

Bcrypt bør bruges til hashing af adgangskoder i systemer, som allerede understøtter algoritmen, især når kompatibilitet med en eksisterende database eller et eksisterende framework er vigtig. Bcrypt er bevidst langsom og bruger salt. Derfor egner algoritmen sig ikke som generel kontrolsum til filer eller som identifikator til deduplikering.

  • Egnede anvendelser omfatter adgangskoder til applikationer, test i forbindelse med migrering, kontrol af databasefelters størrelse og genskabelse af et bcrypt-kompatibelt udviklingsmiljø.
  • Brug i stedet Argon2id til et nyt adgangskodesystem, hvis platformen understøtter algoritmen, og dens hukommelsesindstillinger kan administreres korrekt.
  • Brug i stedet SHA-3 til kontrol af filintegritet, indholdsbaserede fingeraftryk eller deduplikering. SHA-3/384 generator og SHA-3/512 generator opretter generelle hashværdier, ikke adgangskodeposter.
  • Brug ikke bcrypt til digitale signaturer, meddelelsesgodkendelse, kryptering eller lagring af data, der senere skal kunne gendannes.

Mellemrum, tegnsætning og tal behandles som inputdata og ignoreres ikke. Tegn med accent og tegn fra ikke-latinske alfabeter kodes som bytes, før bcrypt behandler dem. Begge systemer skal derfor producere de samme bytes ved blandt andet at bruge ens tegnkodning og Unicode-normalisering. Grænsen på 72 bytes er særlig relevant her, fordi ét Unicode-tegn kan fylde mere end én byte. Det er teknisk muligt at hashe et tomt input, men en tom adgangskode giver ingen reel modstand mod gætteforsøg.

Ofte stillede spørgsmål

Hvor meget plads kræver en bcrypt-hash i databasen?

Afsæt mindst 60 ASCII-tegn til en almindelig bcrypt-post. Et lidt bredere felt kan være nyttigt ved fremtidig migrering til andre adgangskodealgoritmer, mens en binær kolonne ikke er nødvendig til det kodede standardformat.

Kan jeg flytte eksisterende SHA-hashes af adgangskoder til bcrypt?

Du kan ikke konvertere en eksisterende SHA-hash til bcrypt-hashen af den oprindelige adgangskode uden at kende adgangskoden. En almindelig migreringsmetode er at verificere den gamle hash, næste gang brugeren logger ind, derefter hashe den indtastede adgangskode med bcrypt eller Argon2id og erstatte den gamle post.

Før du gemmer et resultat, skal du kontrollere, at hele værdien på 60 tegn er kopieret, at databasefeltet ikke beskærer den, og at den modtagende applikation understøtter postens versionsmarkør.

Populære værktøjer