Password Strength Meter

Check your password strength with entropy-based analysis. 100% client-side - your password never leaves your browser.

Last reviewed: April 2026

New to this tool? Click here for instructions

Password Input
Character Breakdown
Length 0 Uppercase 0 Lowercase 0 Digits 0 Symbols 0
Analysis
Enter a password to see its strength analysis.
Type a password above to check its strength.

Type or paste a password to see its Shannon entropy in bits, a zxcvbn-style guessability score, and time-to-crack estimates against four different attacker profiles — all computed locally in your browser. Your password input never leaves your device. Nothing is transmitted, logged, or stored on any server. The page is static HTML and JavaScript; you can verify by opening your browser's Network tab while you type, or by disconnecting your network after the page loads.

What This Tool Does

This tool measures two complementary properties of a password and combines them into a single security score. The first is Shannon entropy, expressed in bits — a mathematical lower bound on guessing difficulty derived from the password's length and character set. The second is a pattern-aware guessability estimate inspired by Dropbox's zxcvbn library: it scans for dictionary words, keyboard sequences, common substitutions (l33t-speak), repeated characters, and matches against a top-100 leaked-password list. The combined score reflects both how large the theoretical keyspace is and how much smaller the practical search becomes once an attacker uses realistic prior knowledge.

The headline number is time to crack, but a single crack-time figure is misleading because attackers operate in very different cost regimes. This tool reports estimates against four reference scenarios: an online attack throttled to roughly 100 guesses per second (a typical web login with rate-limiting), an unthrottled online attack at 10,000 guesses per second (a poorly-defended API), an offline attack against a slow hash like bcrypt running at 100,000 guesses per second on consumer hardware, and an offline attack against a fast hash like MD5 or NTLM running at 100 billion guesses per second on a GPU cluster. Knowing which regime applies to a given account is what turns an abstract entropy number into a concrete threat assessment.

Every computation runs in JavaScript inside this browser tab. The password string is held only in the input element's value property and the local function scope that processes it; no fetch, XHR, WebSocket, or sendBeacon call carries it anywhere. When you close or reload the tab, the string is garbage-collected and gone. This privacy guarantee is the entire point of building the tool client-side rather than as an API.

How to Use It

The interface is one input field and a live analysis panel. There is no Submit button — analysis updates as you type, debounced to fire 100 milliseconds after the last keystroke so the entropy display does not flicker on every character.

Step 1: Type or Paste Your Password

The input starts in type="password" mode, masking each character behind a dot. The eye icon at the right of the input toggles between masked and visible — useful when you want to confirm what you have actually typed, especially on mobile keyboards that auto-correct or substitute characters silently. Clicking Try Example pre-fills the classic password Tr0ub4dor&3 (the one from XKCD 936) so you can see how the tool scores a leetspeak-heavy 11-character password.

Step 2: Read the Entropy and Score

The analysis panel updates immediately. The strength meter shows a 0–100 score and a label (Very Weak, Weak, Fair, Strong, or Very Strong) keyed to the score. Below the bar, four analysis cards report Shannon entropy in bits, the estimated crack time at 10 billion guesses per second (the GPU-offline regime), the size of the character set the password draws from, and the total combinations expressed as a power of two.

Step 3: Examine the Character Breakdown

The chip row beneath the input displays counts for each character category: total length, uppercase letters (A–Z), lowercase letters (a–z), digits (0–9), and symbols (everything else including punctuation, brackets, and whitespace). Categories with a count of zero are visually dimmed. This breakdown is what the entropy calculation feeds on — the character set size used in the entropy formula is the sum of category sizes that have at least one member present (26 for lowercase, 26 for uppercase, 10 for digits, 33 for symbols).

Step 4: Read the Suggestions

The suggestions list provides specific, actionable improvements. Red dots flag critical problems (common password, too short, dictionary match). Amber dots indicate weaknesses worth fixing (missing character class, sequential characters, repeated characters). Green dots confirm strengths (good length, full character class coverage, very strong overall). The goal is to make every red dot disappear and to accumulate green dots — at which point the strength label will read Strong or Very Strong.

Worked Example: Three Passwords Compared

The clearest way to build intuition for entropy versus realistic attacker behavior is to walk three concrete passwords through the math. Each looks superficially reasonable; each tells a different story under realistic attack.

Example 1: Password123! — 12 characters, "complex," catastrophically weak

The character set spans lowercase (26), uppercase (26), digits (10), and a single symbol class (33), totaling 95. Twelve characters drawn from 95 candidates would theoretically carry log2(95^12) = 78.8 bits of entropy. In practice, however, this password is one of the most common ever leaked. Every credential-stuffing wordlist and every GPU-cracking ruleset starts with password, then prepends/appends digits, then capitalizes the first letter, then adds a trailing symbol. Password123! is reached within the first few thousand guesses. Realistic crack time against a GPU cluster: under one second. Realistic crack time against any rate-limited login: still seconds, because credential-stuffing tools rotate target accounts to evade lockouts. The 78-bit theoretical figure is a fantasy; the effective entropy is closer to 15 bits.

Example 2: correct horse battery staple — 28 characters, dictionary words, surprisingly strong

This is the canonical XKCD passphrase. Four random words from a 7,776-word list (the EFF Diceware list) gives log2(7776^4) = 51.7 bits — provided the words were truly drawn randomly. The character set perspective is misleading here because the password uses only lowercase and spaces, suggesting a small effective alphabet; the security comes from the dictionary structure, not the per-character entropy. A naive entropy calculator would underestimate this password. zxcvbn correctly identifies it as four common-word matches and estimates roughly 2^45 to 2^50 guesses to crack with a dictionary-aware tool like PRINCE. Crack time at 10 billion guesses/second: roughly 1.5 to 50 days — strong enough that no online attack works and most offline attacks against properly-hashed credentials remain infeasible. The lesson: randomly-chosen words beat character soup of similar length, and they survive typing without errors.

Example 3: k9$pL2#xQ8mW — 12 random characters, very strong

This is what a password manager produces with a 12-character, all-class setting. The character set is the full 95-character printable ASCII; the characters appear chosen by a cryptographic random source with no exploitable structure. Entropy: log2(95^12) = 78.8 bits, and this time the calculation actually reflects the search difficulty because there are no dictionary matches, keyboard runs, or substitution patterns for an attacker's rules engine to exploit. Crack time at 10 billion guesses/second: roughly 900 years. Crack time against any sensibly-rate-limited login: not in this universe. This password's only weakness is human memory — which is why it should live in a password manager rather than in your head.

Common Use Cases

Picking Your Own Password

The most direct use is to score a password you are about to set on a new account. Type your candidate, read the entropy, fix the red and amber suggestions, and stop when the meter reads Strong or Very Strong. For accounts that hold meaningful value — email, banking, password manager master password, work SSO — aim for at least 70 bits of entropy and a green-only suggestion list before committing.

Evaluating Company Password Policy

Security teams use entropy analysis to check whether a written password policy actually delivers the security it claims. A policy that mandates "minimum 8 characters, must include uppercase, lowercase, digit, and special character" produces effective entropy that is usually far below the 52.6 bits a fully-random 8-character ASCII password would carry, because mandated complexity drives users toward predictable patterns. Run a sample of likely user passwords through this tool — Summer2026!, Spring$24, P@ssword1 — and the policy's real-world weakness becomes visible.

Designing a Passphrase

If you need a password you can actually memorize — for a password manager master, a disk-encryption key, or a recovery phrase — passphrase design is the right approach. Generate four to six words from a public Diceware list using physical dice or crypto.getRandomValues(), then paste the result here. The tool will not pick up the Diceware structure (it sees dictionary words and may underrate the entropy), but you can verify the underlying math: n random words from a 7,776-word list carry 12.92×n bits of entropy, so five words is 64.6 bits and six is 77.5 bits. Anything you can paste in and see flagged as Strong on character analysis alone is a bonus.

Testing Password Manager Output

Modern password managers default to producing 16 to 20 character passwords with all character classes enabled. Paste a few samples into this tool to confirm: entropy should land between 95 and 130 bits, the strength meter should read Very Strong, and the crack time should be quoted in geological timescales. If the manager's output ever scores below Strong, check whether the character-set checkboxes were toggled off — a "letters and numbers only" 12-character password is only 71 bits, materially weaker than the same-length all-class version.

Edge Cases and Common Mistakes

Entropy Theater: Length-Only Checks

A surprising number of password meters score purely on length, character class coverage, and presence/absence of a digit or symbol. These checks are easy to satisfy with extremely weak passwords. Aaaaaaaa1! passes "8+ chars, uppercase, lowercase, digit, symbol" yet collapses instantly under any pattern-aware attack. This tool's penalties for repeated characters and dictionary words exist specifically to defeat that gaming behavior — but no automated checker can catch every pattern. The ground truth is: random beats memorable, and length beats complexity, every time.

Why P@ssw0rd Is Weak Despite Meeting Every "Complex" Rule

Eight characters, uppercase, lowercase, digit, symbol — and yet P@ssw0rd appears in every credential-stuffing wordlist and is cracked in milliseconds on consumer GPUs. The reason is that GPU-based cracking tools like hashcat run rule engines on top of their wordlists. A rule like p@$$:s says "replace each 's' with '$'"; l33t rules systematically swap 'a' for '@', 'o' for '0', 'i' for '1'. Every common dictionary word gets multiplied by hundreds of transformation rules. Leet substitution is not security; it is a renaming convention that attackers' tools already understand.

Dictionary Attacks and Compromised-Password Lists

Beyond bare wordlists, modern attackers use compromised-password corpora — collections of every password ever exposed in a breach. The HaveIBeenPwned Pwned Passwords dataset holds over 850 million unique passwords by mid-2026, each searchable by SHA-1 prefix without exposing the full hash. 1Password and other managers integrate this dataset to warn when a generated or stored password matches a previously-leaked one. If your password appears in this corpus — even just once, in any breach across the internet — it is effectively zero-entropy against an attacker who has loaded the same list.

Credential Stuffing: Reused Passwords

The largest password-related attack category is credential stuffing: attackers take a username/password pair leaked from one site and try it on every other site. If you use the same password on a low-value forum and your bank, the forum's breach compromises the bank account. The defense is uniqueness: one password per site, generated and stored by a password manager. Strength analysis matters for the password manager's master password and a few critical accounts (email, work SSO, the manager itself); for everything else, what matters is that no two passwords are the same.

zxcvbn Limitations

zxcvbn was trained on English-language wordlists, English names, and ASCII keyboard layouts. Passwords using non-English dictionary words, foreign-language phrases, or non-ASCII characters may receive inflated strength scores because zxcvbn cannot recognize the pattern. Conversely, attackers regularly use multi-language wordlists, and any wordlist that exists publicly is in the attacker's toolkit. Use the tool's score as a floor estimate, not an upper bound — your actual security may be lower if your password matches a pattern this tool's dictionaries miss.

Biometrics and 2FA Matter More Than Complexity in 2026

The hard truth is that password complexity has diminishing returns past the point where online attacks become infeasible (around 50 bits of entropy with rate-limiting). Beyond that, the realistic threats are phishing, credential reuse, malware-based credential theft, and SIM-swap attacks against SMS-based 2FA. WebAuthn passkeys (FIDO2) and hardware security keys defeat phishing in a way no password length can. Authenticator-app TOTP defeats credential stuffing even when the password leaks. For high-value accounts in 2026, the marginal hour spent strengthening a password matters less than the hour spent enabling phishing-resistant 2FA.

Behind the Scenes

Shannon Entropy Formula

For a password of length L drawn uniformly at random from a character set of size C, the Shannon entropy in bits is:

H = L × log2(C) = log2(C^L)

For a 12-character password using all 95 printable ASCII characters: H = 12 × log2(95) = 12 × 6.57 = 78.8 bits. The keyspace is 2^78.8 ≈ 5×10^23 possible passwords. This calculation assumes uniform random selection — every character independently and equally likely. Any deviation from uniformity (human selection, dictionary words, keyboard patterns) reduces the effective entropy below the formula's prediction, often dramatically. The formula provides an upper bound on guessing difficulty, not a guarantee.

The zxcvbn Algorithm

zxcvbn was developed by Dan Wheeler at Dropbox in 2012 and remains the de facto standard for realistic password scoring. It works by attempting to decompose a password into a sequence of matches drawn from multiple pattern categories: dictionary matches (against frequency-ordered English words, surnames, female/male names, US cities, common passwords, leet-substituted variants); spatial matches (qwerty keyboard runs, asdf rows, numeric-keypad shapes); repeat matches (aaa, abab); sequence matches (abc, 123, jklm); and date matches (1985, 12/31, 2026-04). For each decomposition, zxcvbn estimates the number of guesses required to reach that match using realistic attacker priors — most-common dictionary words first, common substitution rules second, etc. The decomposition with the fewest total estimated guesses becomes the password's score. The output is a single number (guesses required) that converts to crack time at any guess rate.

NIST SP 800-63B-3 Requirements

NIST Special Publication 800-63B revision 3 (the current US federal guidance, last revised June 2017 with errata through 2026) gives strikingly different advice than the older complexity-rules orthodoxy. Key requirements for memorized secrets (passwords): minimum 8 characters with at least 64 character types allowed (the full printable ASCII range plus Unicode); no forced periodic expiration (rotation only on suspected compromise); no composition rules like "must contain uppercase" — these are explicitly discouraged; compare against a blocklist of known-compromised passwords from prior breaches; and offer the user a strength meter. The reasoning: forced complexity produces predictable patterns, forced rotation produces incremental passwords (Password1Password2), and the highest-leverage check is whether the password has already been leaked.

HaveIBeenPwned for Offline Checking

Troy Hunt's HaveIBeenPwned (HIBP) Pwned Passwords API provides a privacy-preserving way to check whether a password has appeared in any known breach. The client hashes the password with SHA-1, sends only the first 5 hex characters of the hash to the API, and receives back all hash suffixes from the database starting with those 5 characters (a k-anonymity response). The client then checks locally whether its full hash appears in the response. The API never sees the password or its full hash; the response leaks only that the client is checking some password whose SHA-1 begins with the 5-character prefix. This tool does not call HIBP — to preserve the absolute no-network-egress guarantee — but a top-100 common-password check is performed locally, and the Password Generator shows how to integrate HIBP for stricter checking when you accept the network call.

Comparison: This Tool vs. Other Strength Meters

Different password strength tools measure different things and have different threat models. The table below clarifies what each tool is actually checking, so you can pick the right one for the question you have.

Password Strength Tools Compared: Algorithm, Network Behavior, and Threat Model
Tool What It Measures Network Egress Best For
This tool Shannon entropy + pattern penalties (common passwords, sequences, repeats, leet) + bonuses for length and class diversity None — fully client-side Quick entropy check on any password you would not paste into a third-party service
1Password Watchtower Vault-wide audit: reused passwords, weak passwords (zxcvbn-derived), HIBP-matched compromised passwords, 2FA-eligible accounts HIBP k-anonymous prefix queries; no password content leaves device Auditing an entire stored vault for systemic weaknesses
HaveIBeenPwned Pwned Passwords Membership in a corpus of 850M+ known-leaked passwords (single bit: yes or no) SHA-1 prefix sent to API (k-anonymity); password itself never transmitted Confirming a candidate password has not already been leaked
LastPass Security Dashboard Similar to 1Password: reused, weak, old, and compromised passwords across stored credentials Limited per-feature; vault data already lives in their cloud LastPass users auditing their existing vault
Bitwarden Vault Health Reports Exposed passwords (HIBP), reused passwords, weak passwords (zxcvbn), unsecured websites, inactive 2FA HIBP k-anonymous queries; rest is local vault analysis Bitwarden users auditing their vault on a self-hosted or cloud instance
pwgen / openssl rand Generation-side: produces random passwords; does not score arbitrary inputs None (local CLI) Generating new passwords in a terminal or shell script
Regex-based complexity checkers Length and character class presence — that's all Varies Compliance theater; not recommended as a real strength signal
This tool intentionally avoids any network egress so that even very sensitive candidate passwords can be analyzed safely. For vault-level audits or breach-database checks, use a password manager's built-in dashboard.

How Much Entropy Is Enough? Threshold Reference

The "right" amount of entropy depends entirely on the attacker scenario. The table below gives concrete crack-time estimates across realistic guessing rates so you can match the entropy target to the threat.

Time to Crack by Entropy and Attacker Scenario (Average Case = Half the Keyspace)
Entropy Online (100/sec) Unthrottled API (10K/sec) Offline bcrypt (100K/sec) Offline GPU NTLM (100B/sec) Recommendation
30 bits170 days1.5 days3 hoursmillisecondsUnacceptable
40 bits174 years1.7 years2 months5 secondsWeak
50 bits178,000 years1,800 years180 years1.5 hoursOnline only
60 bitsgeologic1.8M years180,000 years2 monthsMost accounts
70 bitsgeologicgeologic180M years185 yearsStrong
80 bitsgeologicgeologicgeologic190,000 yearsVery strong
100 bitsgeologicgeologicgeologic200 billion yearsMaster password / disk encryption
"Geologic" means timeframes that exceed the age of the universe (13.8 billion years) and are not meaningful as security claims. Estimates assume average-case search (half the keyspace); worst-case figures are double. Future hardware improvements compress these numbers — the historical trend is roughly 2× per 18 months for fixed-budget attackers.

Related Tools

The natural complement to a strength meter is a generator that produces strong passwords directly. The Password Generator uses crypto.getRandomValues() to produce cryptographically-random output with configurable length and character set — paste its results here to confirm they score as expected. For hashing a known password (to compare against a stored hash, or to compute a SHA-256 fingerprint), the Hash Generator covers SHA-1, SHA-256, SHA-512, and MD5 entirely in-browser via the Web Crypto API.

If you are working with API credentials rather than human passwords, the UUID Generator produces 122-bit random identifiers (UUIDv4) suitable for API keys, session tokens, and database primary keys. The JWT Decoder inspects JSON Web Tokens to verify their algorithm, claims, and expiration — useful when debugging authentication flows where you need to confirm that a token was issued correctly without paste-checking the embedded secret. For converting binary keys or password hashes to a printable form, the Base64 Encoder handles the standard encoding used in most credential storage formats.

Frequently Asked Questions

For accounts behind rate-limiting (most online services), 50–60 bits of entropy is sufficient because attackers cannot guess fast enough to brute-force the keyspace. For files that an attacker can copy and crack offline at billions of guesses per second on a GPU cluster, target at least 75–80 bits. For long-lived secrets like password manager master passwords or disk-encryption keys, 100+ bits provides a comfortable safety margin against future hardware improvements.
Yes, with caveats. Four randomly chosen common words yield roughly 44–50 bits of entropy when drawn from a 7,776-word list like the EFF Diceware wordlist (log2(7776^4) = 51.7 bits). That is strong enough to defeat any online attack and most offline attacks. However, the security depends entirely on the words being chosen by a random process — picking words that have personal meaning, or that form a grammatical sentence, drops the actual entropy dramatically because attackers run grammar-aware passphrase crackers like PRINCE.
An 8-character password drawn from all printable ASCII (95 characters) carries log2(95^8) = 52.6 bits of entropy. Modern GPU-based crackers like hashcat running on consumer hardware can attempt 100 billion NTLM hashes per second and roughly 10 billion bcrypt hashes per second on rented cloud GPUs. At those rates, an 8-character random password falls in hours to days. NIST SP 800-63B explicitly recommends a minimum of 8 characters for memorized secrets but stresses that length is the dominant factor — 12 characters is the practical floor in 2026.
Yes. A password manager solves the structural problem that makes humans bad at password security: you cannot remember 200 unique 20-character random strings, so without a manager you reuse passwords across sites. One breach then exposes every account that shares that password — credential stuffing attacks weaponize this. A manager generates a fresh random password per site, stores it encrypted under one strong master password, and autofills it without your typing being keylogged. 1Password, Bitwarden, and KeePassXC are all reputable. The remaining risk concentrates into protecting the master password and the device the vault is decrypted on.
Cryptographically-secure random generation from a wide character set, performed by software rather than a human. The Web Crypto API's crypto.getRandomValues() function provides cryptographically-strong randomness in any modern browser; this is what password managers use under the hood. For passwords you must type by hand, EFF Diceware passphrases (5–6 randomly chosen words from the 7,776-word list) deliver 65–77 bits of entropy in a form humans can actually memorize. The worst method is anything "memorable" — birthdays, pet names, song lyrics, leetspeak substitutions on dictionary words. These all collapse to a tiny effective keyspace under realistic attack.
No. The entire analysis runs in JavaScript inside your browser. The password you type is never transmitted over the network, never logged, and never stored. You can verify this by opening your browser's Network tab and confirming that no request is sent when you type. The page itself is static HTML and JavaScript served from Cloudflare's CDN; no server-side code processes your input. For maximum assurance, disconnect your network after loading the page — the tool will continue to function because all computation happens locally.
A regex checker tests whether a password matches a pattern — for example, "at least 8 characters, contains an uppercase letter, a digit, and a symbol." This is theater: "P@ssw0rd1" passes every such check yet is among the most common passwords ever leaked. zxcvbn, developed by Dropbox in 2012, takes a fundamentally different approach: it scores passwords by their estimated guessability under a realistic attack. It matches substrings against dictionaries (common passwords, English words, surnames, cities), detects keyboard patterns (qwerty, asdf), date patterns, repeated characters, and l33t substitutions, then estimates the number of guesses an informed attacker would need. The output is a single number — guesses required — that maps directly to crack time at any guessing rate.
NIST Special Publication 800-63B revision 3 (the current authoritative US federal guidance) explicitly removed the long-standing requirement that passwords contain a mix of character classes. The reasoning: forcing "one uppercase, one digit, one symbol" produces predictable patterns like "Password1!" rather than improving security. NIST now requires only a minimum length (8 characters, with 12–15 recommended), prohibits forced periodic expiration, and mandates checking new passwords against a list of known-compromised values (the HaveIBeenPwned API is commonly used for this). Length and uniqueness do the work that complexity rules pretended to do.