Password Strength Checker — Entropy, Crack Time, and HIBP Breach Lookup
Analyze password strength in your browser: entropy in bits, estimated crack time under four attack scenarios (online throttled/unthrottled, offline GPU fast hash, offline bcrypt slow hash), and structural findings (dictionary words, keyboard sequences, repeated patterns). Optional k-anonymous Have I Been Pwned lookup.
Last updated:
CommentsStrength analysis runs entirely in your browser. Nothing is sent to any server unless you explicitly click the “Check breaches” button (which uses the Have I Been Pwned k-anonymity API — only the first 5 characters of the SHA-1 hash are sent, never the password itself).
Need to generate a strong password? Password Generator creates cryptographically random passwords with configurable length and character classes.
Frequently Asked Questions
How does this tool score my password?
Three passes: (1) A character-pool entropy estimate — length × log2(pool size), where pool depends on which of lowercase/uppercase/digits/symbols you used. (2) Structural penalties — being a well-known weak password (like 'password123'), containing a keyboard sequence (qwerty, 1234, abcdef), being all-digits, or repeated patterns like 'abcabc' subtract entropy. (3) Positive findings for length and character-class diversity. The final 0–4 score maps to Very weak / Weak / Strong / Very strong.
What do the four crack-time rows mean?
They model different attacker capabilities. (a) Online throttled: guessing against your login form with rate limits (~10/s). (b) Online unthrottled: same but no rate limits (~100/s). (c) Offline fast hash: attacker has stolen a password database hashed with something fast like SHA-1 or unsalted MD5, using a GPU cluster (~10 billion tries/s). (d) Offline slow hash: attacker has a bcrypt/scrypt/Argon2 database (~10k tries/s per GPU). If (d) is still centuries, you're in great shape.
Is my password ever sent to any server?
Not for the strength analysis — everything runs locally. The only time any data leaves your browser is if you explicitly click 'Check breaches', which uses the Have I Been Pwned k-anonymity API: your password is SHA-1 hashed locally, and only the first 5 hex chars of the hash are sent. HIBP returns all matching hash suffixes and the comparison happens locally. Your actual password never touches the network.
What is the HIBP k-anonymity check?
Have I Been Pwned (haveibeenpwned.com) maintains a database of ~800 million passwords found in public breaches. The k-anonymity API is a privacy-preserving query: you send only the first 5 characters of your password's SHA-1 hash (a prefix that matches ~450 hashes on average), and the server sends back all matching hash suffixes along with breach counts. You do the final comparison locally. The server never learns your password.
My password scored 'Very strong' but showed up in HIBP. What now?
Rotate it immediately. Even a 20-character mixed-case password with symbols has zero real-world security if it's on attackers' pre-computed wordlists — they'll try it before doing any brute-force work. Uniqueness beats theoretical entropy every time. Use our Password Generator to make a fresh one and store it in a password manager.
Why doesn't this tool use zxcvbn?
zxcvbn (Dropbox's popular strength library) is excellent but ~400KB gzipped — that's more than the entire rest of this site's JavaScript. We use a lighter approach: keyboard-sequence detection, common-password check, repeated-pattern detection, plus the character-pool entropy formula. Not quite as sharp as zxcvbn on obscure patterns, but catches 95% of the meaningfully bad choices at 1% of the size.
Related Tools
JWT Decoder
Decode JSON Web Tokens (JWT) to inspect the header, payload, and signature. Runs entirely in your browser — tokens are never sent to any server.
AES Encrypt / Decrypt
Encrypt and decrypt text with AES (128 / 192 / 256, GCM authenticated or CBC legacy) using a password. PBKDF2 key derivation with 200,000 iterations. 100% local — the Web Crypto API runs entirely in your browser.
RSA Key Generator
Generate RSA key pairs (2048, 3072, or 4096 bits) online for OAEP encryption, PSS signing, or RS256 JWTs. Exports PKCS#8 private key + SPKI public key as PEM, JWK, or DER (hex/base64). 100% local — the Web Crypto API runs in your browser, private keys never leave the tab.
Public Key Extractor
Paste an RSA or EC private key (PEM PKCS#8 or JWK) and instantly extract the matching public key in PEM (SPKI), JWK, or DER format. Perfect for publishing a JWKS endpoint, verifying a token against a private-key-only backup, or distributing a public key to peers. 100% local — the private key never leaves your browser.
RSA Encrypt / Decrypt
Encrypt text with an RSA public key or decrypt ciphertext with the private key, using RSA-OAEP (SHA-256/384/512). Accepts PEM (PKCS#8 / SPKI) or JWK. 100% local — keys and plaintext never leave your browser tab.
ECDSA Sign / Verify
Sign or verify messages with ECDSA (P-256, P-384, P-521) using PEM or JWK keys. Outputs both JOSE / P1363 (JWT-compatible) and DER (OpenSSL-compatible) signatures. 100% local via the Web Crypto API.