ToolZen ToolZen
Misc generator client

Password Generator

Generate strong random passwords with custom length, uppercase, lowercase, digits, and symbols. Copy multiple at once.

Advertisement (Top Banner)
Forza
16
Generate multiple passwords
Advertisement (Bottom)

A generated password is only as good as the randomness behind it and the length you give it. This tool draws from crypto.getRandomValues — the browser's cryptographically secure random source — and the default of 16 characters from a 62-symbol alphabet gives you about 95 bits of entropy. What that number means, and which of the checkboxes actually matter, is worth two minutes.

Entropy is length times the log of the alphabet

The strength of a random password is log2(alphabet_size) × length, and it is worth having the arithmetic because it settles arguments. Each character from a 62-symbol set (A–Z, a–z, 0–9) contributes 5.95 bits. Sixteen of them is 95.3 bits.

To put 95 bits in perspective: an attacker with an offline copy of the hash, running a trillion guesses per second on serious hardware, would need on the order of 600 million years to cover half the space. That is not a number that gets meaningfully worse with better hardware. A password of this length from this alphabet is not what will be broken.

Length beats symbols, and it is not close

Here is the calculation that should change how you use this tool. Turning on the symbols checkbox grows the alphabet from 62 to 88 and takes a 16-character password from 95.3 to 103.4 bits — a gain of 8.1 bits. Dragging the length slider from 16 to 20 instead takes you to 119.1 bits: a gain of 23.8.

Four extra characters are worth three times as much as every punctuation mark on the keyboard. This is because length is a multiplier on the exponent while the alphabet is only the base. Symbols also cost you: they break copy-paste in some terminals, get mangled by systems that filter input, and remain the reason a depressing number of sites still reject perfectly good passwords. If you have to choose, choose length.

The randomness source is the part that can be catastrophically wrong

A password generator has one job that must not be got wrong, and it is invisible from the outside. crypto.getRandomValues is a cryptographically secure generator: its output cannot be predicted even by someone who has seen a great deal of it. Math.random is not. V8 implements Math.random with xorshift128+, an algorithm designed for speed and statistical quality — observe enough of its output and its internal state can be recovered, and every value it will produce next becomes predictable.

A password generator built on Math.random produces output that looks perfectly random to you, passes every visual inspection, and is a catastrophe. This is not a hypothetical failure mode; it has happened repeatedly in shipped software. This tool uses getRandomValues, which is the only acceptable answer, and it is worth knowing that the question exists so you can ask it of any other generator you use.

What the guidance actually says now

NIST SP 800-63B was rewritten years ago and most of the password rules people still enforce were removed from it. Composition rules — must contain an uppercase, a number, a symbol — are explicitly discouraged, because they push humans toward predictable substitutions. Password1! satisfies every rule and is in every cracking dictionary.

Forced periodic rotation is also gone unless there is evidence of compromise. It made passwords worse rather than better: people asked to change quarterly produce Summer2024, Autumn2024, Winter2024. What the guidance asks for instead is a minimum length, a generous maximum, permission to use every character including spaces and emoji, and a check against known-breached password lists. That last one is the single highest-value control, because the realistic attack is not brute force against 95 bits — it is trying a password that already leaked from somewhere else.

Passphrases, and where they fit

Four words drawn randomly from a 7,776-word Diceware list is 51.7 bits. Five is 64.6, six is 77.5. That is well below the 95 bits of a 16-character random string, which surprises people who have seen the famous xkcd comic.

The point of a passphrase was never that it is stronger — it is that a human can memorise it and will therefore not write it on a sticky note or reuse it. That trade-off matters for the handful of passwords you actually have to remember: your device login, your password manager's master password. For the several hundred others, memorability is irrelevant, because a password manager is doing the remembering. Use a passphrase where a brain is involved, and a long random string everywhere else.

Common questions

Are the passwords generated on a server?

No. This tool is marked "client": every password is produced in your browser tab by its own random source and nothing is transmitted. There is no log of them anywhere, including here. That said, the safest habit with any web-based generator is to treat a password you generated in a browser as slightly less private than one your password manager generated locally — not because of this page specifically, but because a browser tab is a busy place with extensions in it.

How long should my password be?

Sixteen random characters is past the point where length is your problem, and the default here for that reason. Below about 12 you are in territory where a determined offline attack is plausible. Above about 20 you are optimising something that already had no realistic chance of being brute-forced, and you would get more safety from turning on two-factor authentication.

Should I exclude ambiguous characters?

Only when a human has to read the password across a gap — off a screen onto a phone, over the telephone, from a printed card. Removing l, 1, I, 0 and O shrinks the alphabet, so it costs you a little entropy: at 16 characters the loss is under 2 bits, which is nothing. When nobody is reading it, leave them in.

Why does the same password show different strength on different sites?

Because most strength meters estimate how a human would have constructed the password, not how much entropy it really has. They look for dictionary words, keyboard runs, dates, l33t substitutions. Against a truly random string those heuristics have nothing to grip, so the score is really just a function of length and character variety — which is why a meter will happily rate Password1! as "strong" while it sits in every cracking wordlist.

Is it safe to reuse one very strong password everywhere?

No, and this is the most important thing on this page. Entropy protects against guessing; it does nothing whatsoever about a breach. When a site stores your password badly and gets breached — which happens constantly — the strength of the password is irrelevant, because the attacker now has it. They will then try it against your email, and if it works, everything else follows. Unique passwords are not about strength. They are about containment.