Password Strength Checker
Pattern-aware strength analysis -- common passwords, sequences, keyboard walks, repeats and dates detected, not just raw entropy -- plus multi-scenario crack times and an optional breach check.
What this tool does
Analyzes a password the way an actual attacker would, not just
by counting characters. A raw entropy estimate
(length × log2(character pool size)) assumes every
character was drawn uniformly at random — but
Password1! and a truly random 10-character string use
the same character pool and length, while being wildly different
in how fast each would actually be guessed. This tool detects the
patterns that make the first one weak — being a known common
password, a keyboard walk, a sequential run, a repeated run, a
date, or a common word with simple substitutions — and shows a
penalty-adjusted strength score alongside the raw
one, plus crack-time estimates across four
realistic attack scenarios, not one generic number.
What gets detected, and why each one matters
- Known common/breached passwords — checked against a list of the most common passwords found in real breach dumps. A match means instant compromise via a dictionary attack, regardless of length or "complexity".
- Leetspeak substitutions —
p4ssw0rdispasswordwith predictable character swaps (4→a,0→o,3→e...) that cracking tools check for automatically; it offers almost no more protection than the plain word. - Sequential runs —
abcd,3456,wxyz— adjacent characters in alphabet or digit order contribute far less real entropy than their length suggests, since they're among the first patterns any cracking tool tries. - Keyboard walks —
qwerty,asdfgh,zxcvbn— physically adjacent keys, another extremely common and extremely weak pattern. - Repeated runs —
aaa,1111— repetition collapses what looks like several characters of entropy into effectively one decision. - Dates — a 19xx/20xx-shaped year is commonly guessed (birth years, current year) and checked early by targeted attacks.
Crack time across four real scenarios
A single crack-time number is almost always misleading, because it depends entirely on how the password is being attacked. This tool shows four: online, rate-limited (~100 guesses/hour — a login form with lockout), online, unthrottled (~10/second — a login form with no rate limiting), offline, slow hash (~10,000/second — a leaked database hashed with bcrypt/Argon2, the way passwords should be stored), and offline, fast hash (~10 billion/second — a leaked database hashed with raw MD5/SHA-1, the way passwords unfortunately sometimes are). The same password can be "centuries" in the first scenario and "seconds" in the last.
NIST SP 800-63B, in short
Current NIST guidance (the US federal digital identity
standard) explicitly recommends: prioritize length
over forced complexity rules (requiring 1 uppercase + 1 digit + 1
symbol tends to produce predictable patterns like
Password1!, not stronger passwords); check new
passwords against a list of known-breached ones
(what this tool's pattern detector and optional HaveIBeenPwned
check both do); and stop forcing periodic password
changes with no evidence of compromise, since that
historically just pushed people toward weaker, more predictable
passwords.
The optional breach check — the one thing that isn't fully local
Every other tool on this site, and everything else on this page, runs entirely in your browser. The one exception, entirely opt-in and never automatic, is the HaveIBeenPwned breach check button: it computes a SHA-1 hash of your password locally, sends only the first 5 characters of that hash to the HaveIBeenPwned Pwned Passwords API (k-anonymity — this is the same privacy-preserving technique used by 1Password, Firefox Monitor and other password managers), gets back every known breached password hash sharing that prefix, and checks locally whether your full hash is among them. Your actual password is never transmitted, and neither is your full hash — only an ambiguous 5-character prefix shared by roughly a thousand other hashes.
Why there's no password history here
Unlike the Password Generator (which creates fresh, throwaway candidates), this tool is meant for checking a password you might actually use — so, deliberately, nothing you type here is kept anywhere, not even in this tab's memory, not even temporarily.