Password Generator
Generate a strong random password right in your browser. Nothing is sent anywhere — the password exists only on your screen until you copy it.
What makes a password strong?
Two things: length and randomness. Every extra character multiplies the number of guesses an attacker needs, and the generator above reports exactly how many for the password it just made.
But "time to crack" is not a property of your password. Nearly every table you will find online quotes a single figure, and that figure silently assumes the worst-run site on the internet. The same password takes wildly different times depending on how the site you typed it into stored it — something you cannot see, choose, or find out:
| Password | Entropy | Stored badly unsalted hash, GPU rig | Stored properly bcrypt |
|---|---|---|---|
| password123 | ~23 bits | under a second | 8 minutes |
| 8 chars, lowercase only | 38 bits | 1 second | 121 days |
| 10 chars, mixed case + numbers | 60 bits | 49 days | 1 million years |
| 12 chars, all four sets | 75 bits | 5,000 years | 50 billion years |
| 16 chars, all four sets | 100 bits | 159 billion years | 1018 years |
Guesses assumed: 1011/second against a fast unsalted hash, 104/second against bcrypt at an ordinary work factor. Times are to the halfway point, which is what you expect on average rather than the worst case.
Read the two right-hand columns across a single row. An eight-character lowercase password is either gone in a second or holds for four months, and nothing about the password changed — only the database it landed in. That is the whole reason the advice is always "add length" rather than "add a symbol": length is the only variable on this table you actually control, and it is the one that moves both columns at once.
It is also why the same password on two sites is as weak as the worse of the two. A hundred bits of entropy protects nothing if that exact string is sitting in someone else's breached database in plain text — at which point no one has to guess anything at all.
The rules that actually matter
- Never reuse passwords across sites. Breaches happen constantly; one leaked password shouldn't open your whole life.
- Use a password manager. It remembers the random passwords so you don't have to. You only memorize one strong master password.
- Turn on two-factor authentication (2FA) for email, banking, and anything important — it protects you even if the password leaks.
- Length beats cleverness. "P@ssw0rd!" follows all the "rules" and is still terrible; crackers try letter-symbol swaps first.
Passphrases: the memorable alternative
If you must memorize a password (like your master password), four to five random common words — "orbit-velvet-thunder-maple" — are both easier to remember and mathematically stronger than a short "complex" password. The trick is the words must be genuinely random, not a sentence you'd naturally say.
What this generator does that a naive one does not
"Random" is easy to claim and easy to get wrong, and the ways it goes wrong are invisible in the output — a biased password looks exactly like an unbiased one. Three things are done here deliberately, and each has a cost worth knowing about:
- Rejection sampling, not
x % n. Taking a random 32-bit number modulo the alphabet size skews the result toward the start of the alphabet, because 232 does not divide evenly by 70. Values landing in the incomplete final block are discarded and redrawn instead. The bias this removes is small, but it is a bias in the one place a password generator must not have one. - Every ticked character class is guaranteed to appear. Drawing uniformly from one combined pool left 14.8% of default-setting passwords missing at least one class the user had ticked — measured over 200,000 draws at length 16. Someone who ticks "symbols" because a site demands one got a password without one about one time in seven, with nothing on screen to say so. One character is drawn from each class first, then the rest from the combined pool, then the whole thing is shuffled so the guaranteed characters are not always at the front.
- Lookalike characters are left out. No
l,I,O,0or1, because they get misread off a screen and retyped wrongly. This is a real cost, not a free win: it shrinks the pool from 75 characters to 70, which at length 16 is 1.6 bits — three times fewer combinations. On a figure already measured in billions of years that is the right trade; if you are going below 12 characters it is worth reconsidering.
You can check the first claim without trusting us: the generator is plain JavaScript in the page source, it uses crypto.getRandomValues rather than Math.random, and it keeps working with the network disconnected — which is also the proof that nothing is being sent anywhere.
Sources
The advice on this page that contradicts what many sites still tell you — do not rotate on a schedule, do not demand character classes, prefer length — is not our opinion. It is what the two bodies that write the guidance now say:
- NIST SP 800-63B — Digital Identity Guidelines, Authentication — the US federal standard. Section 5.1.1.2 is the source for "no periodic rotation" and for dropping composition rules: forced changes and complexity requirements make people pick predictable patterns, which costs more than it buys.
- UK National Cyber Security Centre — Password guidance — the same conclusions reached independently, plus the case for password managers and for putting the burden on the system rather than the person.
The crack-time figures are arithmetic, not citations: combinations divided by a guess rate. The two rates are stated above so you can substitute your own — that is the point of showing them rather than printing one number.
Frequently asked questions
Is it safe to generate a password on a website?
On this page, yes — generation uses your browser's built-in cryptographic randomness (crypto.getRandomValues) and runs entirely on your device. You can verify by loading the page, disconnecting from the internet, and generating — it still works.
How often should I change passwords?
Modern guidance (including NIST's): don't change on a schedule — change immediately when there's any sign of a breach. Forced rotation leads to weaker, patterned passwords.
What length should I pick?
16 is a strong default. Use 20+ for anything critical, and shorter only when a site forces a limit.