bcrypt-hashgenerator
Generera hash
Higher = slower & more secure. 12 is en good default.
Ibland har du en bcrypt-hash från en gammal backup och ett klartextlösenord, och behöver veta om de matchar. Eller så har du ett lösenord och vill ha hashen som en viss kostnadsfaktor skulle producera. Det här verktyget gör båda: skriv ett lösenord så genererar det en färsk hash, klistra in en hash och en kandidat så säger det om verifieringen lyckas — med samma konstanttidsjämförelse som en produktionsinloggning.
Generera eller verifiera bcrypt
-
1
Välj läge
Generera en ny hash från ett lösenord, eller verifiera ett lösenord mot en befintlig `$2a$` / `$2b$` / `$2y$`-hash.
-
2
För generering: ange klartext och kostnad
Kostnad 4-14; 10-12 är normalt. Ett slumpmässigt salt på 16 bytes skapas för varje hash.
-
3
För verifiering: klistra in hash och klartext
Verktyget extraherar salt och kostnad från hashen och hashar om klartexten med samma parametrar.
-
4
Läs resultatet
Genereringsläge kopierar hashen på 60 tecken; verifieringsläge returnerar en grön matchning eller röd avvikelse.
Interna steg i verifieringsläge
Givet en lagrad hash som:
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
Verifieraren:
- Parsar version (
2b), kostnad (12), salt (första 22 tecknen efter kostnad) och digest (sista 31 tecknen). - Kör bcrypt igen på kandidatens klartext med det extraherade saltet och kostnaden.
- Jämför den resulterande digesten med originalet med konstanttidsjämförelse.
En lyckad jämförelse ger true; varje skillnad ger false.
Konstanttidsjämförelse
Att jämföra två strängar med ett naivt == returnerar så snart en byte skiljer sig — en timing-side channel som kan läcka hashen siffra för siffra över tillräckligt många prover. Produktionskontroller av lösenord (och det här verktyget) använder en konstanttidsjämförelse som alltid granskar varje byte, så beslutstiden beror inte på hur många inledande bytes som matchar.
Vanliga diagnostiska fall
| Symptom | Trolig orsak |
|---|---|
| Verifiering misslyckas, du är säker på lösenordet | Avslutande blanksteg eller BOM i indata. Ta bort båda. |
Verifiering misslyckas, version 2y |
Vissa bibliotek ogillar 2y; den är giltig och kompatibel. Hasha om med 2b framöver. |
| Hash för kort / felformad | Inte en bcrypt-hash. MD5 är 32 hextecken, SHA-1 är 40, bcrypt är 60 med $-avgränsare. |
| Varning om kostnadsmismatch | Lagrad kostnad ligger under din policyminiminivå. Hasha om vid nästa lyckade inloggning. |
Omhashning vid inloggning
Bästa praxis: när en användare loggar in framgångsrikt, kontrollera om den lagrade hashen har lägre kostnad än din aktuella policy. Om ja, hasha om lösenordet med den nya kostnaden och uppdatera databasen. Inom några månader har du uppgraderat hela användarbasen utan att be någon byta lösenord.
Vad verktyget inte gör
- Bulkverifiering — Byggt för en hash i taget.
- Knäcker eller kör brute force — Ordboks- och rainbow-table-attacker ligger avsiktligt utanför verktygets omfattning.
- Hämtar klartexten — bcrypt är envägs; om du har glömt lösenordet är återställning enda vägen.
Vanliga frågor
Nej. Hashning och verifiering sker i din webbläsare. Varken klartexten eller hashen lämnar sidan.
Saltet genereras slumpmässigt per hash. Det är hela poängen — två användare med samma lösenord får olika hashar, vilket stoppar rainbow tables.
Ja, det är exakt vad verifieringsläget gör: klistra in hashen du har, klistra in ett kandidat-lösenord, och verktyget bekräftar eller nekar matchning.
Ja. Alla moderna varianter samverkar — digesten är kompatibel mellan versioner; bara taggen skiljer sig. Vissa gamla $2$-hashar från system runt år 2000 kan behöva ett bibliotek med explicit legacy-stöd.
Relaterade verktyg
AES kryptera / dekryptera
Kryptera och dekryptera text med låg risk med AES-chiffer från OpenSSL. Lösenfrasen hashas med SHA-256 och Base64-utdata innehåller IV plus chiffertext.
A1Z26-chifferkodare
Koda text med A1Z26-chiffret (A=1, B=2, ... Z=26) eller avkoda en siffersekvens tillbaka till bokstäver, med anpassningsbar separator.
Atbash-kodare
Koda eller avkoda text med Atbash-chiffret, en hebreisk substitutionsmetod som mappar A-Z till Z-A. Samma åtgärd krypterar och dekrypterar.
Base32-kodare och avkodare
Koda och avkoda Base32-strängar med RFC 4648-alfabetet. Användbart för TOTP-hemligheter, skiftlägesokänsliga tokens och identifierare som människor skriver in.
Base85-kodare och avkodare
Koda och avkoda Base85 i Adobe Ascii85- (PostScript/PDF) eller Z85-variant (ZeroMQ). Mer kompakt än Base64 för binär data.
bcrypt-generator
Generera en bcrypt-hash från ett klartextlösenord. Justerbar kostnadsfaktor från 4 till 14, kompatibel med Laravel, Django, Node och PHP.