Bcrypt-generator
Opret en bcrypt-adgangskodehash med et tilfældigt salt på 16 bytes og en omkostningsfaktor fra 4 til 12. Værktøjet returnerer den standardiserede modulære crypt-streng, der begynder med $2a$, som PHP password_verify, Node.js bcrypt, Spring Security og de fleste frameworks accepterer. Brug den til at oprette testbrugere, nulstille en administratoradgangskode i en database eller kontrollere din egen hashkode. Adgangskoden vises eller gemmes aldrig.
Ofte stillede spørgsmål
Hvad er bcrypt?
Bcrypt er en funktion til hashing af adgangskoder fra 1999, som er baseret på Blowfish-krypteringsalgoritmen. Den kombinerer et tilfældigt salt med en justerbar omkostningsfaktor, så hvert ekstra trin fordobler det arbejde, en angriber skal udføre pr. gæt. Den er fortsat et udbredt valg til lagring af adgangskoder.
Hvad betyder outputstrengen?
En hash som $2a$10$ efterfulgt af 53 tegn indeholder version 2a, omkostningsfaktoren 10, et salt på 22 tegn og en hash på 31 tegn, alt sammen i bcrypts egen Base64-alfabet. Gem hele strengen, da verificeringsfunktionen læser saltet og omkostningsfaktoren fra den.
Hvilken omkostningsfaktor skal jeg vælge?
Værktøjet tillader en omkostningsfaktor fra 4 til 12 og bruger 10 som standard, hvilket er en almindelig standardindstilling i frameworks. Hvert trin fordobler tiden, så omkostningsfaktor 12 tager cirka fire gange så lang tid som omkostningsfaktor 10. I produktion skal du vælge den højeste omkostningsfaktor, dine servere kan klare på omtrent 100 til 250 millisekunder.
Hvorfor er omkostningsfaktoren begrænset til 12?
Højere omkostningsfaktorer tager flere sekunder pr. hash og ville lade en enkelt anmodning optage serveren i lang tid. Omkostningsfaktor 12 er allerede stærk nok til de fleste applikationer, og du kan hashe igen med en højere omkostningsfaktor i dit eget miljø, hvis det er nødvendigt.
Hvorfor giver den samme adgangskode en forskellig hash hver gang?
Værktøjet genererer et nyt tilfældigt salt på 16 bytes for hver hash. Forskellige salte giver forskellige strenge, men alle kan verificeres mod den samme adgangskode. Det forhindrer angribere i at bruge forudberegnede tabeller.
Er der en grænse for adgangskodens længde?
Ja. Bcrypt bruger kun de første 72 bytes af en adgangskode, så værktøjet afviser længere adgangskoder i stedet for lydløst at ignorere resten. Ikke-ASCII-tegn fylder flere bytes hver i UTF-8.
Accepterer PHP eller Laravel en $2a$-hash?
Ja. PHP password_verify, Laravel, Symfony og WordPress-plugins, der bruger password_hash, accepterer hasherne $2a$, $2b$ og $2y$, som kun adskiller sig ved historiske fejlrettelser. Node.js bcrypt, bcryptjs, Python bcrypt og Spring Security accepterer også $2a$.
Gemmes eller logges min adgangskode?
Nej. Adgangskoden bruges kun til at beregne hashen under anmodningen. Den fjernes fra svaret og skrives aldrig i logfiler eller på lager.
Bør jeg bruge bcrypt eller Argon2?
Argon2id er den nyere anbefaling fra OWASP, fordi den kræver meget hukommelse, hvilket gør GPU-angreb dyrere. Bcrypt er stadig et acceptabelt valg og understøttes af et meget bredt udvalg af biblioteker, så det er et fornuftigt valg, når Argon2 ikke er tilgængelig.
Hvordan kontrollerer jeg en adgangskode mod en bcrypt-hash?
Brug Bcrypt Verifier på dette websted, eller kald dit frameworks verify-funktion. Sammenlign aldrig bcrypt-strenge direkte, fordi en ny hash af den samme adgangskode altid ser anderledes ud.