Generate real bcrypt password hashes with an adjustable cost factor, or verify a password against an existing hash — 100% client-side, nothing leaves your browser. Free, no signup.
Bcrypt Hash Generator
Create secure bcrypt password hashes and verify passwords against existing hashes — right in your browser. Real bcrypt, adjustable cost factor, free forever.
Every hash uses a fresh random salt, so the same password produces a different hash each time — that is expected and correct. Hashing runs in small chunks so the page stays responsive, with a progress bar at higher cost factors.
Hashing and verification happen entirely in your browser. Your passwords are never sent anywhere.
Use every feature instantly — no account, no email, no tracking.
Unlimited hashes and verifications, with no watermarks or limits.
How to use
- 1Enter a password
Type the password you want to hash in the Generate tab. Use the Show button to double-check it.
- 2Pick a cost factor
Drag the slider (4–14). Cost 10 is the safe default; higher costs resist cracking longer but take more time.
- 3Generate and copy
Hit Generate Bcrypt Hash, watch the progress bar, then copy the resulting $2b$ hash into your app or database.
- 4Verify anytime
Switch to the Verify tab, paste any bcrypt hash, enter the password, and get an instant match / no-match answer.
Features
A genuine Blowfish-based bcrypt implementation, byte-for-byte verified against reference test vectors — not a lookalike.
Set the work factor from 4 (fast) to 14 (very strong) with a live slider and per-run timing.
Check any password against any $2a$, $2b$ or $2y$ bcrypt hash with a clear match / no-match verdict.
Every hash gets a fresh 128-bit salt from your browser's secure random generator.
Hashing runs in small chunks with a live progress bar, so the page never freezes — even at cost 14.
No servers, no uploads, no logs. The code runs 100% on your device and works without an internet connection.
Frequently asked questions
What is bcrypt?
Why bcrypt instead of MD5 or SHA-256?
What cost factor should I choose?
Why does the same password give a different hash every time?
Is my password sent to a server?
How do I verify a bcrypt hash in my own code?
bcrypt.checkpw(), Node's bcrypt.compare(), PHP's password_verify(), or Ruby's BCrypt::Password.new(hash) == password. Paste a hash from this tool into the Verify tab first to confirm it behaves as expected.
Syed Waleed