1. The Mathematics of Information Entropy (Claude Shannon)
In 1948, mathematician Claude Shannon published A Mathematical Theory of Communication, defining the mathematical measure of information entropy. Applied to cybersecurity, Password Entropy quantifies the exact number of bits of computational uncertainty an attacker faces when attempting to guess a secret credential.
The mathematical formula is expressed as:
Where L represents the total character length of the secret, and R represents the size of the character pool from which each character is independently selected (e.g. 26 for lowercase, 52 for mixed case, 62 for alphanumeric, 94 for printable ASCII).
Two things follow from the shape of that formula, and both matter more than the number it produces. First, entropy is linear in length and only logarithmic in pool size: doubling the length doubles the bits, while doubling the pool adds exactly one bit per character. Second, the word independently is doing real work. The formula measures the size of the space a secret was drawn from at random. It says nothing at all about a secret that was chosen — a point Section 4 returns to, because it is where most password-strength advice goes wrong.
The pool is not something you pick; it is read off the string. Every class that appears anywhere in the password contributes its whole size, because an attacker who knows a digit is in play has to search all ten at every position, not just the one you used:
| Classes present | Pool (R) | Bits per character | 8 chars | 16 chars |
|---|---|---|---|---|
| Digits only | 10 | 3.32 | 26.6 | 53.2 |
| Lowercase only | 26 | 4.70 | 37.6 | 75.2 |
| Lower + digits | 36 | 5.17 | 41.4 | 82.7 |
| Mixed case | 52 | 5.70 | 45.6 | 91.2 |
| Mixed case + digits | 62 | 5.95 | 47.6 | 95.3 |
| All four (printable ASCII) | 94 | 6.55 | 52.4 | 104.9 |
Read down the last two columns rather than across the rows. Every step of added complexity — from lowercase all the way to full punctuation — buys a 16-character password about 30 bits. Going from 16 characters to 21 at the same lowercase pool buys 23. Complexity rules run out of room; length does not.
2. Why the ASCII Pool Is 94, Not 95 or 33
The 94-character figure is worth deriving, because a surprising number of entropy calculators get it wrong by one and quietly overstate every password they are shown. Printable ASCII occupies code points 0x20 to 0x7E, which is 95 characters including the space. Passwords conventionally exclude the space — many systems trim it, and some reject it outright — leaving 94.
Of those 94, letters and digits account for 62. The remaining 32 punctuation marks are not contiguous; they sit in four separate gaps between the alphanumeric ranges:
| Range | Characters | Count |
|---|---|---|
0x21–0x2F | ! " # $ % & ' ( ) * + , - . / | 15 |
0x3A–0x40 | : ; < = > ? @ | 7 |
0x5B–0x60 | [ \ ] ^ _ ` | 6 |
0x7B–0x7E | { | } ~ | 4 |
| Total | 26 + 26 + 10 + punctuation | 32 → 94 |
Fifteen plus seven plus six plus four is 32, and 26 + 26 + 10 + 32 is 94. Tools that use 33 are usually carrying the space in the punctuation count while still calling the maximum 94 — an internal contradiction. The size of the error is small: log2(95) − log2(94) is about 0.015 bits per character, so a fifth of a bit on a 14-character password. What is not small is that the number on screen and the explanation beside it cannot both be right, and you have no way to tell which one the tool believes.
This calculator counts 32, and it treats anything outside printable ASCII as a floor rather than a measurement. A space, an accented letter or an emoji adds one to the pool per distinct character seen. The true alphabet behind an emoji is thousands of code points wide, so the real entropy is higher — but an attacker targeting you specifically may know you use one, and a floor is the honest thing to report when the alphabet is unknowable.
3. How Many Bits Do You Actually Need?
Bits are hard to feel. The table below turns them into time, using the same engine that powers this page and the IncogSay password generator — every figure is computed, not estimated by hand. The rate is 100 billion guesses a second against a fast unsalted hash, and the time is to exhaust half the keyspace, which is where an exhaustive search finds the answer on average.
| Secret | Pool | Bits | Verdict | Offline crack time |
|---|---|---|---|---|
| 4-digit PIN | 10 | 13.3 | Very weak | instantly |
| 6-digit PIN | 10 | 19.9 | Very weak | instantly |
| 8 lowercase letters | 26 | 37.6 | Reasonable | 1 second |
| 8 chars, mixed case + digits | 62 | 47.6 | Reasonable | 18 minutes |
| 8 chars, all four classes | 94 | 52.4 | Reasonable | 8.5 hours |
| 12 chars, lowercase only | 26 | 56.4 | Reasonable | 5.5 days |
| 10 chars, mixed case + digits | 62 | 59.5 | Reasonable | 49 days |
| 12 chars, all four classes | 94 | 78.7 | Strong | 75 thousand years |
| 14 chars, all four classes | 94 | 91.8 | Very strong | 666 million years |
| 16 chars, all four classes | 94 | 104.9 | Very strong | 5887 billion years |
| 20 chars, all four classes | 94 | 131.1 | Overkill | beyond the age of the universe |
The jump from 12 characters to 14 is the one to look at: 75 thousand years to 666 million, from two extra keystrokes. That is what "linear in length" means once the number is exponentiated back into time.
The verdict column uses six bands, and they are the same bands the password generator reports, so the two tools can never disagree about the same string:
| Entropy | Verdict | Crack time at the lower edge | Fit for |
|---|---|---|---|
| Below 28 bits | Very weak | instantly | Nothing |
| 28 – 35 bits | Weak | instantly | Throwaway sign-ups |
| 36 – 59 bits | Reasonable | under a second | Rate-limited logins only |
| 60 – 79 bits | Strong | 67 days | Everyday accounts |
| 80 – 127 bits | Very strong | 192 thousand years | Email, banking, password manager |
| 128 bits and up | Overkill | beyond the age of the universe | Keys, not passwords |
"Reasonable" is the band to be suspicious of. It runs from 36 to 59 bits, which at a fast hash is anything from under a second to two months — an enormous spread for one label. It is named for the online case, where an attacker has to come through a login form that rate-limits and locks out, and where 40-odd bits genuinely is enough. It is not a pass mark for anything whose hash could end up in a dump. For an account you would mind losing, aim for Strong at minimum and Very strong for the account that can reset all the others — your email, and the master password on your password manager.
Past 128 bits the label stops being a compliment. There is no attack the extra bits defend against, because the ones below them already exceed the energy budget of the observable universe; the cost is all borne by you, in a string you have to type. 128 bits is where a password stops being a password and becomes a key, and keys belong in files and hardware tokens rather than in muscle memory.
4. What This Number Does Not Measure
E = L × log2(R) answers one question exactly: how large is the space this secret was drawn from, if it was drawn uniformly at random. For a password that came out of a generator, that condition holds and the number is the truth. For a password you invented, the condition fails, and the number becomes an upper bound — usually a very generous one.
Here are three 11-character passwords. The formula cannot tell them apart:
| Password | Formula says | Real strength against a rule-based attack |
|---|---|---|
Summer2026! | 72.1 bits | Minutes. Season, year, exclamation mark is a rule, not a guess. |
Tr0ub4dor&3 | 72.1 bits | Hours. One dictionary word, standard leet substitutions, a digit. |
k7$Wq!zR2mF | 72.1 bits | 72.1 bits. Nothing to exploit; the search really is exhaustive. |
Only the third figure is honest, and the only reason it is honest is that nobody chose those characters. This is the single most important thing to understand about any password strength meter, including this one: the score is a property of how the password was made, not of how it looks.
The reason is that real cracking is not a brute-force sweep through the keyspace. It is an ordered guess list, and the order is built from how people behave:
- Wordlists first. Leaked password corpora, sorted by frequency. The most common few million passwords are tried before any brute force begins, and they cost effectively nothing.
- Then rules. Hashcat's stock rule sets append years, capitalise first letters, double words, add trailing punctuation and apply every common letter-to-symbol substitution. A ruleset multiplies a wordlist by a few thousand and still finishes in seconds.
- Then masks. If the shape is predictable — one uppercase, six lowercase, two digits, one symbol — an attacker searches only that shape. A mask can cut a nominal 52-bit search to a real 30-bit one.
- Brute force last, and only over lengths short enough to finish.
Every one of those stages exploits structure, and the entropy formula is blind to all of it. A meter that scores P@ssw0rd123 highly for containing four character classes is measuring compliance with a composition rule, not resistance to an attack.
There is a second, wider blind spot. Entropy measures resistance to guessing, and guessing is only one of the ways passwords are lost. None of the following move the number on this page by a single bit:
- Reuse. Once a password appears in one breach it is replayed verbatim against every other account you hold. Credential stuffing needs one guess, whatever the password is worth.
- Phishing. A 200-bit password typed into a convincing fake login page is worth zero bits. Checking where a link actually goes is a different tool: our safe link checker and redirect checker exist for exactly that.
- Keyloggers and clipboard scrapers. Strength is irrelevant to a device that is already compromised.
- Breach exposure. A password already in a public corpus is one guess away regardless of length, which is why NIST asks services to screen against breach lists rather than to demand symbols.
- Server-side storage. You do not control whether a site salts and stretches your password or stores it in plain text, and the difference between those two is larger than anything you can do to the password itself.
The practical reading of all this is short. Generate your passwords rather than inventing them, so the number is true; make them unique per site, so a breach stays local; keep them somewhere that does not require you to remember them, so length costs you nothing; and treat any figure above 80 bits as the point where the password has stopped being the weakest link in your account.
5. GPU Cluster Compute Benchmarks & Hashcat Physics
Modern password auditing does not occur via slow web forms. Attackers capture password hashes from breached corporate databases and run offline brute-force attacks across dedicated GPU server rigs:
That is the same password, the same attacker and the same hardware. The only thing that changed is a decision made by the site you signed up to, and it is worth roughly 22 bits — more than you can buy by adding punctuation to a 12-character password twice over. You have no visibility into which choice was made and no way to influence it, which is the whole reason the crack times on this page assume the fast case.
| Hash | Order of guesses/second | Effective bits added | 8 chars, all four classes |
|---|---|---|---|
| MD5, NTLM, SHA-1 | 1011 | — | 8.5 hours |
| SHA-256, single round | 1010 | ~3 | 3.5 days |
| PBKDF2, 600k rounds | 105 | ~20 | ~1,000 years |
| bcrypt, cost 12 | 2 × 104 | ~22 | ~4,800 years |
| Argon2id, tuned | 103 | ~27 | ~96,000 years |
Rates for slow hashes depend entirely on the parameters chosen, so read the orders of magnitude rather than the digits. The pattern is what matters: a well-chosen hash is worth about as much as adding four characters to every password on the site at once, which is why the choice belongs to the engineer and the length belongs to you.
6. Passphrases: Counting in the Right Model
The best-known password advice in computing is xkcd 936, which put four common words together as correct horse battery staple and labelled it 44 bits of entropy. That number is worth pausing on, because it is not what the character formula gives. Twenty-eight lowercase letters over a 26-character pool is about 132 bits. The comic said 44, and the comic was right.
Forty-four bits is 4 × log2(2048) — four independent draws from a two-thousand-word list. The difference between 44 and 132 is the difference between two threat models, and only one of them describes a real attacker. Kerckhoffs's principle says to assume your opponent knows the method: they know you used a passphrase, they know the kind of list it came from, and so they guess whole words rather than letters. Under that assumption the search space is the list raised to the number of words, and the letters inside each word are not free choices at all.
So the honest formula for a passphrase is E = W × log2(N), for W words drawn from a list of N. Everything follows from that:
| Passphrase | Bits | Verdict | Offline crack time |
|---|---|---|---|
| 4 words, 256-word list | 32.0 | Weak | instantly |
| 4 words, 2,048-word list (xkcd 936) | 44.0 | Reasonable | 1.5 minutes |
| 4 words, Diceware (7,776) | 51.7 | Reasonable | 5.1 hours |
| 6 words, 256-word list | 48.0 | Reasonable | 23 minutes |
| 5 words, Diceware (7,776) | 64.6 | Strong | 4.5 years |
| 6 words, 2,048-word list | 66.0 | Strong | 12 years |
| 6 words, Diceware (7,776) | 77.5 | Strong | 35 thousand years |
| 8 words, 2,048-word list | 88.0 | Very strong | 49 million years |
| 10 words, 256-word list | 80.0 | Very strong | 192 thousand years |
The uncomfortable line is the second one. The most-cited passphrase recommendation in the field is 44 bits, and 44 bits is a minute and a half against a fast hash. The comic's arithmetic has not aged; the hardware has. Four words was a fair recommendation in 2011 and is a floor to build up from now — six words is the modern equivalent of what four words used to buy.
Two levers control that figure, and they are not equally worth pulling. Adding a seventh word to a six-word passphrase from a 2,048-word list buys 11 bits. Quadrupling the list to 8,192 words buys 12 — nominally more, but it costs several thousand new entries, and every entry added to a curated list is a longer, rarer, harder-to-type word than the ones already in it. Word count is the lever you control; list size is the author's problem.
What is definitely not a lever is decoration. The habits people add to passphrases to satisfy composition rules are worth very little, and some are worth nothing at all:
- Appending a digit:
log2(10), or 3.3 bits — if the digit is actually random. If it is the year, it is under 3 bits and an attacker's rule set tries it first. - Capitalising every word: zero bits. It is deterministic, so it adds one candidate transformation to the attacker's rule list and nothing to the search space.
- Capitalising a random word:
log2(6), or 2.6 bits for a six-word phrase — real, but less than half of one extra word. - Substituting
@forathroughout: zero bits, and it makes the phrase harder to type. Every stock rule set contains this substitution. - Choosing an unusual separator: a couple of bits at most, and only if the choice was random rather than your habit across every passphrase you own.
This is why the IncogSay generator reports what it reports. Its word list holds exactly 256 entries, so each word is exactly 8 bits and the arithmetic is checkable by hand; the optional appended digit is counted as log2(10) and nothing more; and the capitalisation toggle adds no bits to the figure, because it is applied to every word and therefore adds nothing. A generator that inflated its own number for the sake of a nicer-looking meter would be lying about the only thing it exists to tell you.
7. NIST SP 800-63B, in Specifics
"NIST compliant" appears on a great many password meters without much explanation. The document in question is NIST Special Publication 800-63B, Digital Identity Guidelines: Authentication and Lifecycle Management, and the section that matters is the one on memorized secrets. Its third revision, published in 2017, is what overturned two decades of received wisdom about symbols and 90-day expiry; the fourth revision strengthened several of those recommendations from SHOULD into SHALL and raised the recommended minimum length. Revisions move, so check the current text before quoting it in a policy document.
Most of the guidance is addressed to the people building the login form rather than to the person choosing the password, which is worth knowing: several of its most-quoted lines are instructions to stop doing something to users.
| Provision | What it says | Why |
|---|---|---|
| Minimum length | At least 8 characters when the user chooses; the latest revision recommends 15 | Length is the only factor that scales without limit |
| Maximum length | Accept at least 64 characters | Silent truncation caps entropy without telling anyone |
| Character set | Accept all printable ASCII, the space, and Unicode; count each code point as one character | Arbitrary bans push users towards predictable strings |
| Composition rules | Do not impose them | They produce P@ssw0rd1, which is a shape, not entropy |
| Periodic expiration | Do not force it without evidence of compromise | Rotation produces predictable increments |
| Breach screening | Check new secrets against known-compromised lists | A breached password is one guess, whatever its length |
| Password hints | Do not offer them | A hint is a shortcut for the attacker as well |
| Security questions | Do not use them | The answers are public, guessable, or both |
| Paste and reveal | Allow paste; offer to show the typed secret | Password managers and long passphrases need both |
| Rate limiting | Throttle failed attempts | Turns an online guessing attack into a non-attack |
| Storage | Salt with at least 32 bits and hash with a suitable key-derivation function | Sets the guess rate that Section 5 is about |
Read as a whole, the guidance makes one argument twice: put the burden on the verifier, not on the user's memory. Screening against breach lists, throttling attempts and hashing properly are all things a service does, and each is worth more than any rule it could impose on the shape of your password.
That is also the reason this page scores what it scores. It measures length and pool — the things NIST says determine strength — and it does not award marks for containing a symbol, because the guidance explicitly asks verifiers to stop demanding one. A password of 20 lowercase letters reports 94 bits here and would be rejected by a great many corporate password policies that happily accept Summer2026! at a real strength of minutes.
8. Frequently Asked Questions (Password Entropy & NIST FAQ)
What is password entropy and how is it measured?
Password entropy is a mathematical metric (expressed in bits) that measures the unpredictability and search-space difficulty of a password. It is calculated using the formula E = L * log2(R), where L is the character length and R is the size of the character pool (e.g. 94 for full ASCII).
How many bits of entropy make a password secure in 2026?
Against an offline attack: below 28 bits is very weak and falls in seconds; 28 to 35 bits is weak; 36 to 59 bits is reasonable only for accounts you would not mind losing; 60 to 79 bits is strong; 80 to 127 bits is very strong; and 128 bits or more is overkill in the literal sense, because no offline attack against it will ever finish. Those are the same bands the IncogSay password generator reports, so the two tools cannot disagree about the same string.
Does a high entropy score mean my password is actually strong?
Only if you did not choose it. E = L x log2(R) measures the size of the space a password was drawn from uniformly at random, so it is an exact answer for a generated password and an upper bound — often a wildly generous one — for one you invented. Summer2026! scores about 72 bits on the formula and falls in minutes to a rule set that appends years and exclamation marks to dictionary words. Treat the number as a ceiling, not a verdict.
Is my password safe when typed into this calculator?
Yes, 100%. All entropy calculations and crack-time projections are executed locally on your device via client-side JavaScript. No passwords, hashes, or keystrokes are ever sent to any remote server or stored in cookies.
Why are multi-word passphrases better than complex short passwords?
Because length is the only factor you can raise without limit, and a passphrase is the only long secret people reliably remember. Count it in the right model, though: four words drawn at random from a 2,048-word list is 44 bits, not the 130-odd bits the character formula reports for the same 28 letters. An attacker who guesses whole words searches the word space, so the honest figure is words x log2(list size). Six words from a 2,048-word list is 66 bits; the IncogSay generator uses a 256-word list at exactly 8 bits a word and prints the word figure, never the character one.
What are NIST SP 800-63B password guidelines?
NIST SP 800-63B guidelines recommend: minimum length of 8 characters (16+ recommended), allowing long passphrases up to 64 characters, eliminating arbitrary mandatory special character rules, removing periodic forced expiration (which leads to predictable increment patterns like Pass2026!), and checking passwords against known breach databases.
How fast can modern GPU clusters crack password hashes?
An 8-GPU high-end server running Hashcat can compute over 100 billion NTLM/MD5 hashes per second. For weak password hashing algorithms, any password under 10 characters can be fully brute-forced in hours.
Why does the crack time assume 100 billion guesses per second?
Because you do not get to choose how a site stores your password. 100 billion guesses per second is a realistic 2026 GPU rig against a fast unsalted hash such as MD5, SHA-1 or NTLM — the worst case you might plausibly be exposed to. Against bcrypt at cost factor 12 the same rig manages roughly 20,000 guesses per second, some five million times slower, which is worth about 22 bits to every password on that site. The figure here is the pessimistic end on purpose, because you cannot see which choice the site made.
Why does the crack time use half the keyspace rather than all of it?
An exhaustive search finds the answer after half the candidates on average, not after all of them, so the estimate is 2^(bits-1) divided by the guess rate. That is one bit's worth of difference — a factor of two — and it is the conventional way to report expected rather than worst-case time to a hit.
What is the character pool for a printable-ASCII password?
94 characters: 26 lowercase, 26 uppercase, 10 digits and 32 punctuation marks. The punctuation count comes from four ranges of the ASCII table — 0x21 to 0x2F is 15 characters, 0x3A to 0x40 is 7, 0x5B to 0x60 is 6, and 0x7B to 0x7E is 4. Many calculators quote 33, which usually means the space is being counted as punctuation while the maximum is still described as 94. The arithmetic error is tiny, about 0.015 bits per character, but a tool whose number and whose explanation disagree gives you no way to tell which one it believes.
Does adding a symbol to my password help?
Less than one more character does. Adding punctuation to a 12-character alphanumeric password lifts the pool from 62 to 94 and the entropy from 71.5 to 78.7 bits — about 7 bits. Making the same password 13 characters long instead adds 6 bits, and 14 adds 12. That is why NIST SP 800-63B dropped mandatory composition rules: they cost users real effort for a gain that length provides more cheaply, and they push people towards predictable substitutions such as a for @ that cracking rule sets try first.
How do I read the pool size this tool reports?
Each character class that appears anywhere in the string contributes its whole size, because an attacker who knows the class is in play has to search all of it. One digit in an otherwise lowercase password therefore takes the pool from 26 to 36 for every position. Characters outside printable ASCII — a space, an accented letter, an emoji — are counted one each, which is a conservative floor rather than a measurement of how large that alphabet really is.
Why does the tool warn that my password will not reach the figure it just printed?
Because the string tripped one of the structural patterns a cracking rule set enumerates before it brute-forces anything: a four-digit year, a top-wordlist word once letter-for-symbol swaps are undone, a character repeated three or more times, a keyboard run, or the capitalised-word-plus-symbol shape. These are a handful of obvious checks rather than a scoring model, so the absence of a warning is not a guarantee — but a warning means the bit count above is definitely an overstatement.
Should I still change my passwords every 90 days?
No, and NIST SP 800-63B explicitly advises against it. Forced rotation produces predictable increments — Spring2026!, Spring2026!!, Spring2026a — that a cracking rule set enumerates cheaply, so it lowers real strength while raising the number of passwords people have to hold. Change a password when there is a reason to: a breach notification, a shared credential, a device you no longer control.
Does a longer password make up for reusing it?
No. Entropy measures resistance to guessing, and reuse is not a guessing problem. Once a password appears in one breach it is tried verbatim against every other account you own — credential stuffing needs one guess regardless of how many bits the password is worth. A unique password per site and a password manager to hold them is what fixes that; entropy is what fixes the guessing.