Measure a password's real strength, then generate or verify an Argon2id or bcrypt hash. Everything runs locally in your browser — your password never leaves your device.
Files never leave your device
What This Tool Does
This tool has two jobs: telling you how strong a password realistically is, and generating a proper password hash for storage. Type a password to see its strength score update as you type, or switch to hashing mode to turn it into an Argon2id or bcrypt PHC string you can drop straight into a database or config file.
Everything happens on your device. There's no upload step, no server-side password log, and no size limit imposed by a backend — the analysis and hashing both run locally, which matters most for the one piece of data you least want leaving your browser.
Strength Score, Explained
Score
Label
What it means
0
Very weak
Guessable in seconds — common word, name, or simple pattern
1
Weak
Guessable quickly with basic dictionary + pattern attacks
2
Fair
Would slow down a casual attacker, not a determined one
3
Good
Resists most automated guessing within a reasonable time
4
Strong
Impractical to guess with current attack methods
The score comes from zxcvbn, which models realistic attacker behavior instead of a checkbox rule like "must contain a symbol." A long, unusual passphrase can score higher than a short password stuffed with substitutions like P@ssw0rd!, because the latter is exactly the kind of pattern crackers already check for first.
Hashing a Password: Argon2id vs bcrypt
Algorithm
Design goal
When to choose it
Argon2id
Winner of the 2015 Password Hashing Competition; tunable memory + time cost
Default choice for new systems — resists both GPU and side-channel attacks
bcrypt
Older, widely deployed, tunable time cost only
Use when a system you're integrating with specifically requires it
Tip:Never use a fast general-purpose hash like MD5, SHA-1, or plain SHA-256 to store a password. They're designed for speed, which is the opposite of what you want here — see the FAQ above for why that speed becomes a liability.
The PHC String Format
Both algorithms produce a single self-describing string — a PHC string — that bundles the algorithm name, version, cost parameters, and salt together with the hash itself. That means verification never requires you to remember or separately store the settings used to create it; the string carries everything needed to check a password against it later.
bcrypt's 72-Byte Limit
If you choose bcrypt, keep in mind it only looks at the first 72 bytes of whatever you type — anything after that is silently dropped, so two different long passphrases sharing the same first 72 bytes would hash identically. Argon2id doesn't have this limitation, which is why it's the default here.
Your Password Never Leaves Your Device
Strength scoring runs directly on the page, and hashing runs through a small WebAssembly module in a background worker — both entirely inside your browser tab. Nothing is ever sent over the network, so there's no log, no request, and no server that ever sees the password you typed.
If you need to fingerprint or verify a file's integrity, see the Hash & checksum tool. If you need to encrypt a whole file so only someone with a password can open it, see Encrypt & decrypt files — both run on-device the same way this tool does.
Frequently asked questions
Is this password checker and hash generator really free?
Yes. There's no sign-up, no watermark, and no limit on how many passwords you can check or hash. The tool runs entirely in your browser, so there's no server cost to recoup from you.
What does the strength score actually measure?
It runs zxcvbn, a strength estimator that looks past simple rules like "has a number and a symbol" and instead tries to guess your password the way a real attacker would — checking it against dictionaries, common patterns, keyboard walks, and predictable substitutions. It returns a 0–4 score plus an estimated crack time, which is a far more realistic signal than a length requirement alone.
Is my password ever uploaded or sent anywhere?
No. Strength scoring and hash generation both run locally — the strength check runs directly in the page, and hashing runs through a WebAssembly module in a background worker, all inside your browser tab. Your password never travels over the network.
Why use Argon2id or bcrypt instead of MD5 or SHA-256 for storing a password?
MD5 and SHA-256 are built to be fast, which is exactly the wrong property for password storage — that speed lets an attacker with a stolen database try billions of guesses per second on cheap hardware. Argon2id and bcrypt are deliberately slow, so checking one password takes real time and resources; Argon2id goes further and is memory-hard, forcing an attacker to spend real RAM on every guess and blunting the cheap parallelism of GPUs. That makes large-scale guessing impractical even after a breach.
What is a PHC string?
A PHC string encodes everything needed to verify a password later on a single line: the algorithm name (argon2id, or 2b for bcrypt), the version, the cost parameters (memory, time, and parallelism), then the salt and the hash — each field separated by a dollar sign. You store it exactly as generated; the tool's Verify tab reads all of those parameters back out of the string, so you never have to record the settings separately.
What's the bcrypt 72-byte caveat?
bcrypt silently ignores any bytes past the 72nd in your input — a 100-character passphrase and the same passphrase truncated to 72 bytes hash identically. Argon2id has no such limit, which is one reason this tool defaults to Argon2id and only offers bcrypt as a secondary option.
Can I verify a password against a hash I already have?
Yes. Verify mode takes a PHC string and a password and tells you whether they match, without ever needing the original plaintext to have been stored anywhere — useful for checking your own generated hashes or auditing an existing one.