Password Strength Meter — NIST Guidelines, zxcvbn & Breach Screening
Password strength is measured in bits of entropy — the logarithm of the number of guesses an attacker would need on average. NIST Special Publication 800-63B (Grassi et al., Rev 3, June 2017; finalised as 800-63-4 in July 2025) sets the modern guidance: minimum 8 characters with 64+ recommended for memorised secrets, full ASCII printable + Unicode allowed, no forced periodic rotation, no mandatory character composition rules. The replacement is screening against breach lists — Have I Been Pwned's Pwned Passwords API uses k-anonymity (5-character SHA-1 prefix) to query 1,048,576 hash buckets without revealing your password. zxcvbn (Wheeler, USENIX Security 2016) goes further than length-and-classes checks: it models actual attacker dictionaries (30k common passwords, keyboard patterns, dates, leet substitutions) and reports cracking time at different attack speeds. For new passwords, EFF's Diceware long list (7,776 words = 6⁵, each word ≈12.9 bits) lets a 6-word passphrase carry ~77 bits of entropy — resistant to offline brute force for centuries on current hardware. All analysis here runs in your browser; nothing is sent to a server.
How to check password strength
- Type or paste a password into the field. All analysis runs locally in your browser.
- The tool estimates entropy via zxcvbn-style modelling and flags common patterns (top-30k passwords, keyboard sequences, dates, leet substitutions).
- Review the feedback (entropy bits + cracking time at different attack speeds) and adjust the password until strength meets your policy (NIST recommends 64+ bits for memorised secrets).
- For maximum strength, generate a 6-word Diceware passphrase from the EFF long list (~77 bits) and store unique per-site passwords in a manager — never reuse.
Common use cases
- Evaluating a candidate password before committing it to your password manager.
- Teaching team members why predictable patterns (dictionary words, birthdays, P@ssw0rd!) crack fast despite passing length-and-classes checks.
- Setting a baseline entropy target (e.g., 80 bits) for a corporate password policy aligned with NIST SP 800-63B / 800-63-4 guidance.
- Testing whether a password meets a specific service's complexity rules before signup — and verifying the rules don't push you to a predictable pattern.
Frequently asked questions
What did NIST change about password rules in 2017?
NIST SP 800-63B (2017, finalised Rev 4 July 2025) eliminated forced periodic rotation and mandatory character composition rules — both pushed users to predictable patterns. Replaced by: screen against breach lists, allow passphrases, longer minimum (8+ chars, 64+ recommended), full ASCII + Unicode.
What does zxcvbn measure that basic checkers miss?
zxcvbn (Wheeler USENIX 2016) models actual attacker dictionaries: 30k common passwords, words, keyboard patterns (qwerty), dates, leet substitutions. Output `guesses_log10` and cracking time. Detects 'P@ssw0rd!' as 'common password + leet + appended symbol' — score 1/4 vs naive checker's pass.
Should I check passwords against breach lists?
Yes — NIST 800-63B §5.1.1.2 recommends it. HaveIBeenPwned's Pwned Passwords API uses k-anonymity: client sends only first 5 chars of SHA-1 hash, server returns ~478 matching hash suffixes on average (~800–1000 when the client sets the Add-Padding header), out of 1,048,576 possible 5-char prefixes. Server never learns the full password.
What is Diceware and why is it stronger than complex short passwords?
Roll dice to pick random words from a fixed list. EFF long list (2016) has 7,776 words = 6⁵. Each word = 12.9 bits entropy. 6-word passphrase = ~77 bits (EFF recommended). Resists offline brute force for centuries — vs 'P@ssw0rd!' cracked in <1 second on a modern GPU.
Are password managers a substitute for strong passwords?
They operationalise strong-password practice. One strong Diceware master + per-site random 16+ char passwords eliminates reuse — the primary vector for credential-stuffing attacks. Master ≥77 bits Diceware; recovery code backed up offline.
Why entropy beats character classes — and why NIST reversed forced rotation
The classic 'must contain uppercase, lowercase, digit, and symbol' policy is theoretically sound — adding character classes expands the search space — but in practice users respond to those rules predictably: capitalising the first letter, appending a digit or '!', applying leet substitutions (P@ssw0rd!). zxcvbn detects these patterns and scores them as common, not strong. Length matters more than complexity once two character classes are in play: a 20-character passphrase in lowercase letters covers more entropy than a 10-character password with all four classes. NIST's 2017 reversal codified this: forced rotation produced incremental transformations (Password1 → Password2) that lowered effective entropy, and mandatory composition rules pushed everyone to the same predictable patterns. The breach-screening replacement is empirical: rather than enforcing theoretical rules, check whether the candidate has appeared in a known breach. Have I Been Pwned aggregates over 800 million unique compromised credentials; k-anonymity makes the check privacy-preserving by sending only the first 5 characters of the SHA-1 hash. Diceware passphrases sidestep all of this: 6 random words from the EFF list give ~77 bits of entropy, memorable through narrative association, immune to leet-substitution patterns. Password managers operationalise the strategy: one strong Diceware master, unique 16+ character random passwords per site, breach-checked at update time.
- Entropy calculation in bits (zxcvbn-aligned model)
- Crack time at different attack speeds (online throttled / offline fast hash)
- Common password detection + leet-substitution + keyboard-pattern recognition
- NIST SP 800-63B compliance check (8+ char minimum, no composition rules)
- Strong passphrase generator (Diceware-style 6-word, ~77 bits entropy)
- Privacy-first: nothing leaves your browser (k-anonymity model for any breach checks)
Free. No signup. Browser tools (subnet, JWT, password strength) run locally; lookup tools query public APIs (Cloudflare DoH, RDAP, certificate logs). Full per-tool breakdown at /methodology/.
Sources (5)
- Grassi, P. A., et al. (2017). Digital Identity Guidelines: Authentication and Lifecycle Management. NIST Special Publication 800-63B Rev 3 (final, June 2017; updates through March 2020).
- National Institute of Standards and Technology (NIST) (2025). Digital Identity Guidelines (Revision 4). NIST SP 800-63-4 (final published July 2025; supersedes 800-63-3 / 800-63B-3 series).
- Wheeler, D. L. (2016). zxcvbn: Low-budget password strength estimation. USENIX Security Symposium 2016, 157–173.
- Hunt, T. (live). Have I Been Pwned — Pwned Passwords API (k-anonymity model). haveibeenpwned.com/api/v3 (5-character SHA-1 prefix, 16^5 = 1,048,576 hash range buckets).
- Electronic Frontier Foundation (EFF) (2016). EFF's New Wordlists for Random Passphrases (long list). eff.org/dice — 7,776 words = 6^5, ~12.9 bits/word, 6-word recommended for ~77 bits entropy.
These are the IETF RFCs, NIST publications, and W3C standards the tool implements or queries. Locate them on the IETF Datatracker (datatracker.ietf.org) or the official standards body.
By Marco B. ·