ToolsAre.Us — Next-Gen Tools Hub ToolsAre.Us — Next-Gen Tools Hub

What actually makes a password hard to guess

The arithmetic behind strength meters, and why most complexity rules make passwords worse.

Last updated 2 September 2026 · ToolsAre.Us Guides

Password advice has been bad for so long that a lot of people follow rules which actively reduce security. "At least one uppercase, one number and one special character" produces Password1! with dreary reliability. Meanwhile the thing that genuinely matters — length, and never reusing a password — gets mentioned last if at all.

This guide works through the actual arithmetic. None of it is complicated, and once the numbers are in front of you the practical rules follow naturally.

Attackers do not try every combination

The first correction: nobody starts at aaaaaaaa and counts upward. That would be enormously wasteful when human password choices are so predictable.

A real attack works in order of likelihood. It starts with the few hundred million passwords already exposed in previous breaches. Then dictionary words, names, sports teams and dates. Then those with predictable decorations bolted on — capital first letter, digits appended, ! at the end, vowels swapped for lookalike numbers. Cracking software has known about @ for a and 3 for e since the 1990s; these substitutions are rules in the tool, not obstacles to it.

So the real question is never "how many combinations exist?" It is "how far down the guessing order does my password sit?" A password only benefits from the size of the search space if it is genuinely random within it.

Entropy, with real numbers

For a genuinely random password, strength is measured in bits of entropy:

bits = length x log2(size of character set)

Each character set contributes a fixed amount per character:

Character setSizeBits per character
Digits only103.32
Lowercase letters264.70
Upper + lower525.70
Upper + lower + digits625.95
All printable ASCII956.55

The revealing part is how little the character set matters compared with length. Going from lowercase-only to full ASCII buys 1.85 bits per character. Adding a single extra lowercase character buys 4.70 bits. One more character is worth more than every symbol on the keyboard.

Compare two passwords:

The second is thousands of times stronger and vastly easier to type and remember. That is the entire argument for passphrases.

What the bits translate to

Bits only mean something alongside guess rate, which depends on how the password is stored. Two scenarios matter.

Online attacks

Guessing against a live login form is slow — network latency, rate limiting, lockouts. Even an unusually permissive service might allow a few hundred guesses per second. At that rate, anything above about 40 bits is untouchable, and the practical risk is not brute force at all but your password already appearing in a breach list.

Offline attacks

If a site is breached and its password database stolen, the attacker guesses locally against the stolen hashes at whatever speed their hardware allows. Here the site's choices dominate:

How the site stored itGuesses per second (single GPU, order of magnitude)
Unsalted MD5 or SHA-1tens of billions
Salted SHA-256billions
bcrypt (cost 12)a few thousand
Argon2id (tuned)hundreds

The spread is roughly ten million to one. A password that falls in seconds against MD5 can hold for centuries against Argon2id. You have no control over which a given site uses — which is precisely why the defence that is in your control matters so much.

Reuse is the real vulnerability

Almost nobody is individually targeted by password cracking. What actually happens is credential stuffing: an attacker takes username-and-password pairs from a breach of some forum nobody remembers signing up to, and replays them automatically against banks, email providers and shopping sites.

No cracking is involved. The password was already known. It works because the same pair was used elsewhere.

This reframes everything. A magnificent 80-bit password used on twenty sites is weaker in practice than twenty mediocre ones used once each, because the strong password's security is capped by the worst-run site you ever gave it to. Uniqueness beats strength. Ideally you have both, but if you can only fix one thing, fix reuse.

Email deserves special mention. Password resets for everything else arrive there, so a compromised mailbox unlocks accounts whose passwords were never exposed at all. It should have your strongest unique password and a second factor.

Passphrases and the diceware maths

A passphrase is several words picked at random from a known list. The randomness is what counts — a phrase you invented is a phrase a language model can predict.

With a 7,776-word list, each word contributes log2(7776) = 12.9 bits:

WordsEntropyAssessment
338.8 bitsToo weak for anything offline
451.7 bitsFine for low-stakes accounts
564.6 bitsSolid general-purpose choice
677.5 bitsStrong; suitable for a master password
790.5 bitsBeyond any foreseeable attack

Crucially, this arithmetic assumes the attacker knows exactly which word list you used and that you used four words. That is the correct assumption — security should never depend on your method being secret — and the numbers hold up anyway.

Things that quietly destroy entropy

How strength meters work, and their limits

A good meter does not count character classes. It estimates how many guesses a realistic attacker would need, by looking for dictionary words, names, dates, keyboard patterns, repeats and common substitutions, then scoring the cheapest way to construct your password from those pieces.

That is far more honest than a class-counting meter, which rates P@ssw0rd! highly for having four character types while missing that it is among the most-guessed passwords in existence. But no meter is authoritative — none can know that your "random" phrase is a song lyric, or that you used it on another site last year.

A practical scheme

  1. Use a password manager for everything you do not need to type from memory. Long random strings are ideal precisely because you never see them.
  2. Memorise exactly two things: a six-word passphrase for the manager, and a strong unique password for your email account.
  3. Turn on two-factor authentication wherever it is offered, prioritising email, banking and anything holding payment details. An app-based code or a hardware key beats SMS, which is vulnerable to number porting.
  4. Never reuse. If you take one thing from this guide, take this one.
  5. Change on evidence, not on schedule. Rotate when a service discloses a breach or something looks wrong — not because a calendar said so.
  6. Check your addresses against breach databases periodically, and replace anything that shows up.

One caveat worth stating plainly: any password generator you use should draw from a cryptographically secure random source, not from an ordinary pseudo-random function. The difference is invisible in the output and total in the consequences — a predictable generator produces passwords that look random and are not.

← All guides