How strong is your passphrase, really?
Everything on this page runs in your browser. Nothing you type is sent anywhere: zero network requests carry your input. The script behind the checker contains no network code at all, which you can verify by reading it. If JavaScript is off, the tables below still show the math.
Type it, see the math
Prefer not to type the real one? A stand-in with the same shape (same length, same kinds of characters or the same word count) gives exactly the same number.
Type something to see the formula with your numbers in it.
? bits of entropy
| Attacker | Rate | Worst case |
|---|---|---|
| Fast hash on a modern GPU | 10 billion guesses/second | ... |
| Same GPU vs PBKDF2-SHA256, 200,000 iterations | about 50,000 guesses/second | ... |
| Online, rate-limited service | assumed 100 guesses/second | ... |
This number is an upper bound. The formula assumes every character or word was chosen at random; if you invented the phrase yourself, the real strength is lower. The caveats below explain why.
Three guess rates, and where they come from
- Fast hash on a modern GPU: 10 billion guesses/second. An assumption in the ballpark of published hashcat GPU benchmarks for fast unsalted hashes. Source: hashcat, hashcat.net/hashcat.
- The same GPU against PBKDF2-SHA256 at 200,000 iterations: about 50,000 guesses/second. This is not a separate measurement: it is the 10 billion figure divided by 200,000, because each guess now costs 200,000 hash iterations instead of one. Sources: RFC 8018, rfc-editor.org/rfc/rfc8018, and the OWASP Password Storage Cheat Sheet, cheatsheetseries.owasp.org.
- An online, rate-limited attacker: 100 guesses/second. A labeled assumption, not a measurement, for a service that throttles login attempts. Real services vary widely.
Entropy math: a passphrase of L random elements drawn from a pool of R possibilities carries E = L x log2(R) bits. Worst case, an attacker trying every possibility needs 2^E guesses; on average, half that. The table below is that formula applied at the three rates, worst case shown.
| Pattern (randomly chosen) | Entropy | Fast GPU hash | PBKDF2, 200k iterations | Online, throttled |
|---|---|---|---|---|
| 10 random digits | 33 bits | under a second | about 2 days | about 3 years |
| 8 random lowercase letters | 38 bits | about 30 seconds | about 64 days | about 87 years |
| 4 random words (EFF long wordlist) | 52 bits | about 5 days | about 2,900 years | about 1.4 million years |
| 8 random printable ASCII characters | 53 bits | about 10 days | about 5,700 years | about 2.9 million years |
| 5 random words (EFF long wordlist) | 65 bits | about 120 years | about 23 million years | about 12 billion years |
| 6 random words (EFF long wordlist) | 78 bits | about a million years | longer than the age of the universe | longer than the age of the universe |
"Longer than the age of the universe" is used only where it is mathematically true: the universe is about 13.8 billion years old, and those cells compute to 190 billion years and beyond.
What this number cannot tell you
- The math holds only for randomly chosen elements. A phrase you invented is not a random draw: people pick names, dates, lyrics, and keyboard walks, and cracking tools try exactly those patterns first. Character math wildly overstates human-chosen passphrases.
- This page runs no cracking dictionaries and no breach-list lookup. It cannot, because it makes no network calls. That means a common phrase will be overestimated here. Check breach exposure yourself at Have I Been Pwned.
- Never reuse a passphrase. Reuse converts someone else's breach into your problem, at any entropy.
- NIST SP 800-63B, the United States federal guideline, favors length over composition rules: no forced symbols, no scheduled rotation, screening against known-breached passwords. Source: NIST SP 800-63B.
How Violet uses your passphrase
Violet derives an encryption key from your passphrase on your device: PBKDF2-SHA256 at 200,000 iterations with a per-account salt produces a non-extractable AES-256-GCM key that never leaves the machine. The server stores only nonce-plus-ciphertext envelopes it cannot open, and no reset flow exists, because nobody can reset a passphrase they never had. In that design your passphrase is the entire wall, which is why this page exists: so you can size the wall with real numbers.
More depth: how strong does your passphrase need to be, the encryption, line by line, and key derivation in the glossary.