Skip to main content
Utilities10 min read

How Long Should a Password Be?

Eight characters with every symbol you can find: 5 hours. Twelve lowercase letters and nothing else: 6 days.

By Mohamed Zakrya

Updated · 10 min read

Share
Twelve simple characters beat eight complicated ones The complicated one loses Both figures at 100 billion guesses a second, the deliberately pessimistic rate this site assumes. EIGHT CHARACTERS, EVERY TYPE pool 89 26 lower + 26 upper + 10 digits + 27 symbols length 8 the length most rules still ask for entropy 51.8 bits rated Fair time to search the space 5 hours TWELVE CHARACTERS, LOWERCASE ONLY pool 26 no capitals, no digits, no symbols at all length 12 four more characters, nothing else added entropy 56.4 bits also rated Fair, and 4.6 bits ahead time to search the space 6 days THE SIMPLER PASSWORD IS HARDER, BY 24.2x and it has no capital, no digit and no symbol in it. Each extra character multiplies the space by the whole pool. Each extra character type multiplies it once, by a ratio that then has to cover the length you already had. Length is the lever. Symbols are worth about one character.
Eight characters with every symbol you can find: 5 hours. Twelve lowercase letters and nothing else: 6 days.

Two numbers set how much work a brute-force search costs: how many positions your password has, and how many characters could sit in each one. The search space is the pool size raised to the length.

They are not two versions of the same lever, and that is the part almost every password rule gets wrong. One of them can be pulled repeatedly. The other pulls once.

The two numbers that decide everything

The pools come in four sizes. Lowercase alone is 26 characters. Add capitals and it is 52. Add digits and it is 62. Add the symbol set as well and it is 89 — 26 lowercase, 26 uppercase, 10 digits and 27 symbols.

Length is the count of positions. Each position independently holds any character from the pool, so a 12-character password from the 89-character pool has 89 possibilities in every one of its twelve slots.

All of this assumes the characters were drawn uniformly at random. The random number generator covers what uniform drawing actually requires and why an ordinary random function is not enough. If you picked the password yourself, the nominal pool overstates the real search space, sometimes enormously.

The generator's own default is 16 characters with every type enabled. That is a deliberate choice of both inputs, and the rest of this page is about why the first one carries more of the weight.

Why length and complexity are not the same lever

Add one character and you create a whole new position. At the 89-character pool that multiplies the entire search space by 89, and it does so whether the password was short or already long.

Add a character type and you change the pool instead. Going from letters and digits to the full set lifts each position from 62 possibilities to 89. That is a real improvement, but it improves positions that already existed rather than adding one.

So the two levers have different shapes. Length contributes a fresh factor of the whole pool, every time. A bigger pool improves the factors already present, once, and there is no second symbol set to switch on afterwards.

There is a subtler cost to complexity rules too. If you always capitalise the first letter, group the digits, and put a symbol at the end, those characters are not uniform draws from the advertised pool — they are a pattern an attacker can search first.

Eight strong characters against twelve simple ones

Here is the comparison that settles it. An 8-character password using lowercase, capitals, digits and symbols draws on all 89 characters. It carries 51.8 bits of entropy, and the engine gives it 5 hours.

Now take 12 characters of nothing but random lowercase letters. The pool is only 26, but there are four more positions. It carries 56.4 bits, and the engine gives it 6 days.

The plain-looking one wins, and not narrowly: it is 24.2 times harder to search. No capital, no digit, no symbol anywhere in it, and it still beats the password that satisfies every complexity rule on the form.

That is not an argument for lowercase. At equal length the bigger pool wins every time. It is an argument that four extra random positions outweigh moving from a 26-character pool to an 89-character one.

Which means visual complexity is a bad guide to strength. A short string bristling with punctuation can cover less ground than a longer, duller one, and only counting the combinations tells you which.

Both figures also assume genuine randomness inside the stated pool. A memorable lowercase phrase built from ordinary words does not carry 56.4 bits, because those words were never twelve independent draws from 26 letters.

The ladder

Two more characters, four orders of magnitude The ladder, at the full 89-character pool At 100 billion guesses a second, searching half the space on average. LENGTH ENTROPY TIME TO SEARCH 6 38.9 bits 2 seconds 8 51.8 bits 5 hours 10 64.8 bits 5 years 12 77.7 bits 39 thousand years 14 90.7 bits 310 million years 16 103.6 bits 2 trillion years 20 129.5 bits past the age of the universe The bars are entropy, which is linear. The times beside them are not. the default
Entropy and search time by length at the full 89-character pool. The bars are entropy, which grows linearly; the times beside them do not. Sixteen characters is the generator's default.
LengthEntropyRatingTime to search the space
6 characters38.9 bitsFair2 seconds
8 characters51.8 bitsFair5 hours
10 characters64.8 bitsStrong5 years
12 characters77.7 bitsStrong39 thousand years
14 characters90.7 bitsVery strong310 million years
16 characters103.6 bitsVery strong2 trillion years
20 characters129.5 bitsVery stronglonger than the age of the universe

The top of that table is the part worth staring at. At 6 characters the richest pool the tool offers still yields 38.9 bits and 2 seconds. The alphabet is already maxed out, so nothing but length is left to change.

Restrict the pool to lowercase and the same ladder climbs more slowly, but it does climb. Ten characters gives 47.0 bits and 12 minutes; twelve gives 56.4 bits and 6 days; fourteen gives 65.8 bits and 10 years.

Keep going and even the 26-letter alphabet gets somewhere serious. Sixteen lowercase characters is 75.2 bits and 7 thousand years. Twenty is 94.0 bits and 3 billion years, with no other character type involved at any point.

What one more character actually buys

At the full pool, one more character multiplies the space by 89, which is 6.48 bits. The starting length is irrelevant to that multiplier, because the new position always has the same 89 possible values.

One keystroke, the same 89 times, every time What one more character buys Full 89-character pool. The multiplier is identical at every length. every added character x89 which is +6.48 bits of entropy, regardless of what came before BEFORE AFTER 8 chars 5 hours to 9 chars 20 days 12 chars 39 thousand years to 13 chars 3 million years 16 chars 2 trillion years to 17 chars 219 trillion years A character type can only be added once. A character can be added again, and again, and it is worth the same 89 times on every repeat. That is the whole reason length wins.
The same single keystroke at three lengths. Eight to nine turns 5 hours into 20 days; twelve to thirteen turns 39 thousand years into 3 million; sixteen to seventeen turns 2 trillion years into 219 trillion. The factor is 89 in all three.

Near the short end that shows up dramatically: 8 to 9 characters moves the estimate from 5 hours to 20 days. Every candidate that existed before now has 89 continuations, which is a different thing from adding a few more guesses.

Further along the same multiplier looks bigger only because the units are bigger. Twelve to thirteen takes 39 thousand years to 3 million years, and sixteen to seventeen takes 2 trillion years to 219 trillion years.

This is what makes length easy to reason about. Once you know the pool, you know exactly what one more random character is worth, without inspecting anything about the characters already there.

And what a symbol buys

Symbols are not a myth, and the honest number is more interesting than either slogan. Going from the 62-character pool to the 89-character pool multiplies the space at every position, and the total gain grows with length.

Symbols are worth about one character, once And what a symbol buys Going from the 62-character letters-and-digits pool to the full 89. LENGTH SPACE MULTIPLIED BY WORTH, IN CHARACTERS 8 18.0x 0.70 12 76.6x 1.05 16 325.1x 1.40 Symbols are not worthless. A 325-fold larger space is real. It is simply the same size as one more keystroke. The catch is that the symbol lever pulls once. There is no second set of symbols to switch on afterwards, and the length lever has no such limit.
Turning symbols on multiplies the space 18.0 times at eight characters, 76.6 times at twelve and 325.1 times at sixteen — which converts to 0.70, 1.05 and 1.40 extra characters respectively.

At 8 characters that is 18.0 times, which converts to about 0.70 of an extra character. At 12 characters it is 76.6 times, or about 1.05 characters. At 16 characters it is 325.1 times, or about 1.40 characters.

So the answer sits between the two slogans people usually pick from. Symbols buy roughly one character. That is not nothing, and it is not the several characters that complexity rules implicitly promise.

If a form demands a symbol, add one and move on. Just do not let the requirement convince you that an 8-character password has been fixed by it, because the arithmetic above says it has not.

Where the crack-time number comes from

Entropy sizes the space; a time estimate also needs a rate. This site assumes 100 billion guesses per second, roughly a well-funded GPU rig against a fast hash. That is a deliberately pessimistic yardstick, which is the honest direction to be wrong in.

It also assumes the attacker finds it after searching half the space on average, so the expected work is 2 to the power of the bits minus one, not the full space.

Worked end to end at length 12 and pool 89: entropy is 12 x log2(89) = 77.71 bits. Expected guesses is 2 to the power of 76.71, about 1.235 x 10^23. Divide by 100 billion a second and you get about 1.235 x 10^12 seconds, printed as 39 thousand years.

The rate is a property of the storage, not of your password. A password held under bcrypt or Argon2 costs vastly more per attempt than this fast-hash model, so treat the column as a way to compare choices rather than a forecast.

What this arithmetic does not cover

Everything above answers one narrow question: how much work is a uniform search of a known pool. Most accounts are not lost that way, and a long password does not touch the other routes.

A reused password does not need searching at all once it is known from somewhere else. Its entropy is irrelevant the moment the exact string exists in another list, which is what makes uniqueness a separate requirement from length.

Phishing bypasses the number entirely. If the password is typed into a convincing page, nobody runs 100 billion guesses a second against anything, and no amount of length makes a disclosed secret unknown again.

Predictable content has the same effect from the inside. Names, dates, substitutions and keyboard runs get tried long before uniform random strings, so a password can be long and still sit in a small, well-travelled corner of the space.

A breach of the site itself exposes records without going near your string, and encoding is not protection either — as the Base64 page puts it, encoded is not encrypted. Two-factor authentication is a separate barrier and worth having on top, not instead.

Common mistakes to avoid

  • Assuming eight characters is fine because it has every type. The full 89-character pool gives 51.8 bits and 5 hours there, against 56.4 bits and 6 days for twelve plain lowercase characters.

  • Treating a required symbol as a substitute for length. At 12 characters, widening the pool from 62 to 89 is worth about 1.05 extra characters — one, not several.

  • Calling symbols useless. They multiply the space 18.0 times at eight characters, 76.6 times at twelve and 325.1 times at sixteen. Real, just not a second lever.

  • Judging by how complicated it looks. A varied short string can cover less space than a duller long one, which is the whole content of that 24.2 times gap.

  • Applying these pools to a password you invented. The 26, 52, 62 and 89 figures assume uniform choice at every position, not a capital at the front and a digit at the end.

  • Reading the crack time as a promise. It assumes 100 billion guesses a second and half the space searched; slower hashing moves it a long way, and reuse or phishing skips the search completely.

Pick the length first, then take the widest pool you can without building a pattern. Every character you add multiplies the space by the whole pool, again and again. A character type pays only once, and how much depends on the type — for the full symbol set, the trade this guide measured, the answer is about one extra character.

Related guide

Putting JSON in a URL

The other end of the utilities shelf: what percent-encoding does to a payload, why the size grows, and which of the two JavaScript encoders you actually want.

Read the guide

Questions people ask

How long should a password be?

Long enough that the search space is impractical, and length gets you there faster than variety does. At the full 89-character pool this site uses, 8 characters is 51.8 bits and about 5 hours of searching, 12 characters is 77.7 bits and 39 thousand years, and 16 characters is 103.6 bits and 2 trillion years. The generator defaults to 16 for that reason. Every one of those figures assumes the characters were chosen uniformly at random, which is the assumption that fails hardest when people pick passwords themselves.

Is a longer password better than a more complicated one?

Usually, and the margin is larger than most people expect. An 8-character password using lowercase, capitals, digits and symbols carries 51.8 bits and about 5 hours. A 12-character password made of nothing but random lowercase letters carries 56.4 bits and about 6 days, which is 24.2 times harder despite containing no capital, digit or symbol at all. At equal length the wider pool always wins; the point is that four extra positions outweigh the jump from a 26-character alphabet to an 89-character one.

Are symbols actually necessary in a password?

They help, and they are worth about one extra character rather than several. Moving from the 62-character letters-and-digits pool to the full 89-character pool multiplies the search space 18.0 times at length 8, 76.6 times at length 12, and 325.1 times at length 16. Converted into the currency that matters, that is 0.70, 1.05 and 1.40 extra characters respectively. So add the symbol a form demands, but do not treat it as a substitute for length, because one more character is worth the full 89 times multiplier on its own.

How long does it take to crack a 12-character password?

At the full 89-character pool, about 39 thousand years under the deliberately harsh assumptions this site uses. The arithmetic runs like this: entropy is 12 x log2(89) = 77.71 bits, the expected work is 2 to the power of 76.71 or roughly 1.235 x 10^23 guesses, and dividing by 100 billion guesses a second gives about 1.235 x 10^12 seconds. Restrict the same length to lowercase only and it falls to 56.4 bits and about 6 days, which shows how much the pool still matters once length is fixed.

Is an 8-character password still safe?

Not against an offline search, even with every character type switched on. Eight characters drawn from all 89 possibilities is 51.8 bits, which this site estimates at about 5 hours at 100 billion guesses per second. Adding a ninth character multiplies the space by 89 and moves it to about 20 days, and reaching 12 characters moves it to 39 thousand years. The pool is already as wide as the tool offers at 8 characters, so length is the only lever left to pull.

Where does the crack-time estimate come from?

Two assumptions, both stated on purpose. The rate is 100 billion guesses per second, roughly a well-funded GPU rig against a fast hash, which is a pessimistic yardstick rather than a typical one. The attacker is also assumed to find the password after searching half the space on average, so the expected work is 2 to the power of the entropy bits minus one. Neither is a property of your password: a system storing it with bcrypt or Argon2 makes each attempt far more expensive, so treat the figure as a way to compare choices.

Does a long password mean my account is secure?

No, because brute-force resistance is only one of the ways an account is lost. A reused password does not need searching once it is known from another source. A phished password is handed over directly, and no length prevents that. Predictable content such as names, dates and keyboard runs is tried long before uniform random strings. A breach of the site itself can expose records without touching your string at all. Two-factor authentication is a separate barrier and belongs on top of a long password, not instead of one.

Does this apply to a passphrase I made up myself?

Not directly, and this is the most common way the numbers get misused. The 26, 52, 62 and 89 pools describe uniform choices at every position, so 12 random lowercase characters carry 56.4 bits but a twelve-letter phrase you thought of does not. Familiar words, a capital at the front, digits grouped at the end and a symbol in the expected place are all patterns an attacker can search first. A passphrase can still be strong, but its strength comes from how it was chosen, not from its character count.