Skip to content
Toolbrik
Back to blog

Truly strong passwords: why length beats symbols

August 4, 2026 · Related tool: Secure Password Generator

"Use uppercase, numbers and symbols" is the most repeated security advice — and the one that explains its reasoning the least. The real force behind a strong password is a single number: entropy, measured in bits.

What password entropy is

It's calculated as length × log2(alphabet size). The "alphabet size" is how many distinct characters you could have used in each position:

  • Lowercase only: 26 characters → log2(26) ≈ 4.7 bits per character.
  • Lowercase + uppercase + digits + symbols: ~94 characters → log2(94) ≈ 6.55 bits per character.

An 8-character password using all four types has ≈ 52 bits. A 16-character, lowercase-only password has ≈ 75 bits. The second is far harder to brute-force, even though it "looks" weaker at a glance. Length weighs exponentially more than character variety.

How many bits you need, by risk level

Bits What it means
< 30 Cracked in seconds, even with a limited online attack
30–50 Vulnerable to an offline attack with consumer hardware
50–70 Reasonable for everyday accounts
70–90 Strong, suitable for password managers and master keys
90+ Very strong, cryptographic-key territory

The passphrase trick

If you have to memorize a password (your password manager's master password, say), four or five random words (correct-horse-battery-staple) give you more entropy than a word with substitutions like P@ssw0rd! — and they're much easier to remember. Classic dictionary attacks test individual words, not long combinations of unrelated ones.

The rule that actually matters

No password, however strong, protects you from reusing it. If a site's database leaks, an attacker tries those same credentials everywhere else (credential stuffing). The combination that works is: a unique password per site + a password manager + length over complexity.

Generate passwords up to 128 characters with the secure password generator — you'll see the entropy in bits update live as you adjust length and character types. Passwords are generated with crypto.getRandomValues() (cryptographic randomness, not Math.random()) directly in your browser, never sent to a server.