12 character password
77.3 bits
12 characters from the full keyboard · about 6 diceware words · The practical minimum for anything that matters.
The practical minimum for anything that matters.
Twelve characters is 77 bits, which puts a fast offline attack into the thousands of years. This is the shortest length that is defensible for an account you care about, and it is what most modern guidance settles on.
How long it survives
There is no single answer, and the spread is the point: the same password falls in 3.0 thousand years or holds for longer than the universe has existed, by a wide margin depending entirely on how the site stored it — which is not something you control.
| Attack | Guesses per second | Time |
|---|---|---|
| Online, rate limited Guessing against a live login that allows a hundred attempts a second — generous for a real service. | 1×10^2 | longer than the universe has existed, by a wide margin |
| Offline, slow hash A stolen database hashed with bcrypt or Argon2 at sensible parameters. | 1×10^4 | 298 billion years |
| Offline, fast hash A stolen database hashed with unsalted SHA-256 or MD5, attacked on GPUs. This is the case worth designing for. | 1×10^12 | 3.0 thousand years |
Assuming half the keyspace on average, and that every character was chosen at random. A password you thought of yourself is worth a fraction of this.
Entropy by character set
Length is only half of it. What matters is length × the bits each character carries, and that depends on how many characters were possible.
| Character set | Bits each | 12 characters | Fast offline attack |
|---|---|---|---|
| lowercase only (26) | 4.70 | 56.4 bits | 13 hours |
| letters and digits (62) | 5.95 | 71.5 bits | 51 years |
| full keyboard (87) | 6.44 | 77.3 bits | 3.0 thousand years |
What four more characters buy
Entropy is linear in length and the search space is exponential in entropy, so the step is not gentle. Going from 12 to 16 adds 25.8 bits — which multiplies the work by 57,289,761. Four keystrokes you will never type, because a password manager types them.
Or use words instead
This password is worth about 6 words from a diceware list. The equivalence is close enough to be worth memorising: two random characters ≈ one random word (12.89 bits against 12.92). A passphrase of the same strength is longer to write and far easier to type on a phone, which is the trade.
Nearby lengths
| Length | Entropy | Fast offline attack | Verdict |
|---|---|---|---|
| 8 | 51.5 bits | 27 minutes | The old minimum, and no longer enough. |
| 10 | 64.4 bits | 144 days | Borderline. |
| 12 | 77.3 bits | 3.0 thousand years | The practical minimum for anything that matters. |
| 14 | 90.2 bits | 23 million years | Comfortable. |
| 16 | 103.1 bits | 171 billion years | The sensible default. |
Frequently asked questions
Is a 12 character password strong enough?
The practical minimum for anything that matters. Twelve characters is 77 bits, which puts a fast offline attack into the thousands of years. This is the shortest length that is defensible for an account you care about, and it is what most modern guidance settles on.
How long does it take to crack a 12 character password?
It depends entirely on how it is stored. Against a fast unsalted hash on GPUs, 3.0 thousand years. Against bcrypt, 298 billion years. Against a rate-limited login, longer than the universe has existed, by a wide margin. A single "time to crack" figure without that context is meaningless.
How many bits of entropy is a 12 character password?
77.3 bits if every character is chosen at random from the full keyboard — 26 lowercase, 26 uppercase, 10 digits and 25 symbols, which is 6.443 bits each. A password you invented yourself carries far less, because people do not choose randomly.
Is a 12 character password the same as a passphrase?
A 12-character random password is worth about 6 diceware words. Two random characters carry the same entropy as one word from a 7,776-word list — 12.89 bits against 12.92 — so the two approaches are interchangeable at equal strength, and the passphrase is easier to type.