How to measure password strength in bits and choose a length that holds up
What password entropy means, how to calculate it from pool size and length, how long each strength takes to crack, and why length beats complexity rules.
Published September 27, 2026 · By the CalcOak team
A password is strong when there are too many equally likely alternatives for an attacker to try them all in any useful time. Entropy, measured in bits, is the count of those alternatives on a logarithmic scale, and it depends on just two things: how many symbols the password could be built from and how many positions it has. This guide shows how to compute the figure by hand, what different bit counts mean in hours or centuries, and why a longer password beats a cleverly decorated short one.
What a bit of entropy means
One bit doubles the number of possibilities. A password with 1 bit of entropy has two equally likely values; 10 bits give 1,024; 20 bits give about a million; 40 bits give about a trillion. Every extra bit doubles the work an attacker faces, and every extra 10 bits multiplies it by 1,024. That is why the scale feels slow at first and then runs away: 52 bits is a few days of work for a well-equipped attacker, 79 bits is hundreds of thousands of years, and 105 bits is beyond any realistic budget.
The figure only describes passwords chosen at random. “Password123!” has a nominal pool of 94 characters and a length of 12, but its true entropy is close to zero because it sits near the top of every guessing list. Entropy is a property of the process that produced the password, not of how the string looks.
The formula
For a password whose every position is drawn uniformly from a pool of N symbols, the entropy is:
bits = log2(N) × length
Each position contributes log2(N) bits, and independent choices add. The pools used by the password generator are 26 lowercase letters, 26 uppercase, 10 digits and 32 symbols, which combine to 94 printable ASCII characters. The per-character contributions are:
| Pool | Size | Bits per character |
|---|---|---|
| Digits only | 10 | 3.32 |
| Lowercase letters | 26 | 4.70 |
| Letters and digits | 62 | 5.95 |
| All printable ASCII | 94 | 6.55 |
Worked example: a 12-character password from all 94 characters. log2(94) is 6.5546, and 6.5546 × 12 = 78.7 bits. If you instead used only letters and digits, 5.9542 × 12 = 71.5 bits. Adding symbols to the pool gained about 7 bits; adding one more character would have gained 6.5, so a 13-character alphanumeric password (77.4 bits) is almost exactly as strong as a 12-character one with symbols.
Bits, ratings and crack time
To turn bits into time, assume a guess rate and note that an attacker finds the password, on average, after searching half the space. The generator uses 10 billion guesses per second, which is roughly what a single machine with several modern graphics cards achieves against a fast, unsalted hash. The average time in seconds is therefore 2 to the power of (bits − 1), divided by 10 billion. The generator rates anything under 40 bits as Weak, 40 to 60 as Fair, 60 to 80 as Strong and 80 or more as Very strong.
| Configuration | Bits | Rating | Average time at 10 billion guesses per second |
|---|---|---|---|
| 6-digit PIN | 19.9 | Weak | less than a second |
| 8 lowercase letters | 37.6 | Weak | 10 seconds |
| 8 letters and digits | 47.6 | Fair | 3 hours |
| 8 from all 94 characters | 52.4 | Fair | 3.5 days |
| 12 letters and digits | 71.5 | Strong | 5,100 years |
| 12 from all 94 characters | 78.7 | Strong | 754,000 years |
| 16 from all 94 characters | 104.9 | Very strong | 59 trillion years |
| 4 random words from 1,000 | 39.9 | Weak | 50 seconds |
| 6 random words from 1,000 | 59.8 | Fair | 1.6 years |
| 8 random words from 1,000 | 79.7 | Strong | 1.6 million years |
Real attacks rarely run at the assumed rate. A site that hashes with bcrypt, scrypt or Argon2 slows each guess by a factor of thousands, and an online login that locks after ten failures reduces the rate to almost nothing. Conversely, a password leaked in plain text or captured by phishing has an effective crack time of zero. Treat the column as a way to compare options, not as a promise.
Random passwords versus passphrases
A passphrase is a string of words chosen at random from a list. The formula is the same, with the list as the pool: log2(list size) × number of words. With the 1,000-word list the generator uses, each word is worth log2(1000) = 9.97 bits, so four words give 39.9 bits and six words give 59.8. Appending a random two-digit number adds log2(100) = 6.6 bits, which lifts a four-word phrase to 46.5 bits.
Words are weaker per character than random symbols, but they are far easier to remember and to read aloud, so you can afford more of them. Four words is enough for an account protected by lockouts and two-factor codes. For anything that can be attacked offline, such as a disk-encryption key, a password-manager vault or a backup archive, use six words or more, or a 16-character random password of 100-plus bits.
Note that the words must actually be random. A phrase you invent, a line from a song or a set of related words shares the problem of the hand-picked password: attackers already have lists of those.
Why complexity rules matter less than length
Rules such as “at least one capital, one digit and one symbol” were introduced to stop people choosing plain dictionary words. They succeed at that, but people satisfy them in predictable ways: capitalise the first letter, put a digit and an exclamation mark at the end. Cracking tools apply the same transformations automatically, so the rule buys a few bits at most.
Length works differently. Each added character multiplies the search space by the full pool size regardless of what the other characters are. Going from 8 to 12 characters in a 94-symbol pool adds 26 bits, which is about 78 million times more work; adding a symbol to an 8-character alphanumeric password adds just under 5 bits, or roughly 28 times. If a site caps password length at 12 or 16, use the whole allowance from the largest pool it accepts. If it allows 64, a passphrase is the comfortable choice.
Reuse and password managers
None of the arithmetic helps if the same password is used on two sites. When one site is breached, the credentials are tried against every other popular service within hours, and the strongest password in the world falls to a lookup. The practical answer is one random password per account, which is only feasible with a manager. The manager then holds the only secret you memorise, so that one should be a long passphrase, six or more words, protected by a second factor.
Quick checklist
- Generate passwords with a cryptographic random source; never type them out of your head.
- Aim for 80 bits or more on anything that could be attacked offline; 60 is acceptable behind rate limiting and two-factor authentication.
- Prefer a longer password from a smaller pool over a shorter one padded with symbols.
- For a passphrase, use six random words from a real list, not a phrase you made up.
- Use a different password for every account and let a manager remember them.
- When you inherit a policy that caps length, push for a higher limit before adding more complexity rules.