ProtemKey

Making strong secrets · 5 min read

Random vs human-chosen passwords

Random passwords have a strength you can calculate. Human-chosen ones cluster around words, names, dates and patterns, so attackers try those first and the real strength is far lower than the length suggests.

Two passwords can be the same length, use the same kinds of characters, and differ in strength by a factor of trillions. The difference is not visible in the string. It lies in how the password was chosen: by a random process, or by a person.

What “random” means here

A randomly generated password comes from a process that picks each character (or word) uniformly from a known set, using a source an attacker can’t predict. For such a process the strength is exact: the number of possible outputs, all equally likely. Ten characters drawn from the 94 printable ASCII characters give 94^10 possibilities, or 65.55 bits. Nobody, including the attacker, can do better than search that space.

A human-chosen password comes from a person’s head. People choose quickly, under the constraints of memory and whatever rules the site imposes, and they choose in similar ways to each other. NIST’s Appendix A puts it simply: “Humans have a limited ability to memorize complex, arbitrary secrets, so they often choose passwords that can be easily guessed.” Joseph Bonneau, who wrote his PhD thesis on the subject, notes in the EFF deep dive that estimating how hard a human-chosen password is to guess “is very difficult” and that “people aren’t very good at making random, unpredictable choices.”

How human choices cluster

Leaked password collections show the same shapes again and again. Here are the most common entries from a widely used public list of 10,000 frequent passwords (offensive entries removed):

  1. #1 password
  2. #2 123456
  3. #3 12345678
  4. #4 1234
  5. #5 qwerty
  6. #6 12345
  7. #7 dragon
  8. #9 baseball
  9. #10 football
  10. #11 letmein
  11. #12 monkey
  12. #14 abc123
  13. #15 mustang
  14. #16 michael
  15. #17 shadow
  16. #18 master
  17. #19 jennifer
  18. #20 111111
  19. #21 2000
  20. #22 jordan
The 20 most common entries on the bundled list (SecLists “10k most common”, MIT license; a few offensive entries skipped, so ranks jump). The rank is the entry’s position on that list.

And some measured properties of that list:

Computed at build time from the list the strength checker uses (SecLists “10k most common”, MIT license).
Bundled common-password listValue
Entries10,001
Digits only5.5%
Lowercase letters only83.1%
Contain an uppercase letter0.0%
Contain a symbol0.2%
Contain a keyboard walk of 4+ keys1.2%
Contain a year 1900–20290.9%
Median length6 characters
Longest18 characters
At least 15 characters (NIST's single-factor minimum)0.01%

The patterns are familiar: dictionary words, names, sports and teams, keyboard runs like qwerty, digit strings, years. When a rule demands more, people add it in predictable places. NIST’s example is that someone who would have chosen “password” tends to choose “Password1” when asked for a capital and a digit, and “Password1!” when also asked for a symbol. See keyboard patterns and substitutions and what makes a password common for more.

How attackers use this

An attacker trying to crack stolen password hashes doesn’t search all 94^10 strings in order. They try the likely ones first: leaked passwords, dictionary words, names, then the same with common changes such as a capital at the front, digits or a year at the end, a symbol after that, letters swapped for look-alike digits. The research NIST cites on this, Weir and colleagues (2010), measured password policies by actually attacking large sets of real leaked passwords, because counting characters doesn’t predict how quickly they fall.

Worked example: a “word, two digits, symbol” password

Suppose a person picks a password of this shape: a common word, a capital first letter or not, two digits, then a symbol. Something like Monkey42!. Here is an attacker’s model of that shape, with deliberately generous sizes (an illustration, not a measurement):

Part Choices in the model Bits
A word from a 10,000-word list 10,000 13.29
First letter capitalized or not 2 1.00
Two digits 100 6.64
One of 8 common symbols at the end 8 3.00
Total 10,000 × 2 × 100 × 8 = 16,000,000 23.93

Sixteen million is all it takes to cover every password of that shape in the model. At an assumed 10,000 guesses per second against a slow hash, the whole model takes 1,600 seconds, under half an hour, and the average hit comes after about 800 seconds. Against a fast hash at an assumed 10^11 guesses per second, it takes a fraction of a millisecond.

Now compare a password of similar length chosen at random from all 94 printable characters, 10 characters long: 94^10 ≈ 5.4 × 10^19 possibilities, 65.55 bits. At 10^11 guesses per second the average search takes about 8.5 years. The random 10-character password is 2^(65.55 − 23.93) = 2^41.6, about 3.4 trillion times more work than the patterned one, despite looking only a little longer.

The model’s numbers are adjustable; a real attacker’s lists are larger and smarter, and a real person may be more or less predictable than this. What doesn’t change is the direction: patterns shrink the search, and people use patterns.

“But my password is unusual”

Feeling unusual and being unpredictable are different things. If the method behind a password is “a word that matters to me, made to fit the rules,” the attacker’s model covers that method, whatever the specific word. Personal details make it worse, since names, birthdays, pets and places can be found or guessed for a targeted attack. NIST’s blocklist requirement includes “context-specific words, such as the name of the service, the username, and derivatives thereof” for exactly this reason.

Words are fine; choosing them is the problem

A random passphrase uses ordinary dictionary words and is still strong, because a random process picks them from a known list of 7,776 and the attacker can’t do better than search all combinations. Six words give 77.55 bits. If a person chooses six words instead, they tend toward phrases, quotations, grammatical sentences and favorite words, and nobody can say what the strength is anymore. See how passphrases work.

Where human choice still has a place

You can’t always use a generator: a secret you must type on a device without a password manager, or one you need to remember without notes. In those cases, the most useful step is still to bring randomness in: dice and a word list (how to do it) take a few minutes and give a calculable result. If that isn’t possible, length helps, and checking the result against a list of common and breached passwords catches the worst choices; NIST requires services to do that check.

The strength checker estimates a typed password the way an attacker’s model would, line by line. For a password with a strength you can rely on, use the password generator; entropy explained covers why that number is exact.

Sources

  1. NIST SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management (2025)
  2. EFF, Deep Dive: EFF's New Wordlists for Random Passphrases (Joseph Bonneau, 2016)
  3. Weir, Aggarwal, Collins, Stern (2010), Testing Metrics for Password Creation Policies by Attacking Large Sets of Revealed Passwords, ACM CCS

General explanation, not advice for a particular situation. Updated 2026-10-31.