Processed entirely on your device — nothing is uploaded
How to use the password generator
- 1Choose a random password, a memorable passphrase, or a UUID.
- 2Set the length and which character sets to include.
- 3Press Generate for a fresh batch.
- 4Copy the one you want straight into your password manager.
Where the randomness comes from
This uses crypto.getRandomValues, the browser's cryptographically secure random source, which draws from the operating system's entropy pool. That is the same source used for TLS session keys.
It is emphatically not Math.random, which is a fast pseudo-random generator designed for simulations and animation. Math.random is predictable given enough output, and any password generator built on it is fundamentally unsound.
One further detail that many implementations get wrong: converting random bytes to characters with a simple modulo introduces bias, because 256 does not divide evenly by most alphabet sizes — the first few characters become slightly more likely. This tool uses rejection sampling, discarding bytes that fall in the biased tail, so every character is equally probable.
Length beats complexity
Password strength is measured in bits of entropy, calculated as length × log₂(alphabet size). What that formula shows is that adding characters helps far more than adding character classes.
A 12-character password from the full 87-character set carries about 77 bits. A 20-character password using only lowercase letters carries about 94 bits — substantially stronger, despite looking simpler. Every extra lowercase character adds 4.7 bits; adding an entire new character class to a fixed-length password adds far less.
The old advice to substitute symbols for letters — P@ssw0rd! — produces passwords that are hard for humans and easy for cracking software, because those substitutions are the first thing every dictionary attack tries. Length and genuine randomness are what matter.
As rough targets: under 50 bits is weak, 75 is reasonable for ordinary accounts, and 100 or more is appropriate for anything valuable. The entropy estimate updates as you change the settings.
Passphrases and when to use them
A passphrase of random words is easier to remember, easier to type on a phone, and easier to read out over the phone than an equivalent-strength random string. From a 900-word list, each word contributes about 9.8 bits, so five words gives roughly 49 bits and seven gives 69.
That is less per character than a random password, so passphrases need to be longer in absolute terms. The trade is worthwhile for the handful of passwords you actually have to remember: your device login, and the master password for your password manager.
Everything else should be long random strings stored in a manager, because you never type them. The only reason to prefer memorability is when memory is genuinely required.
Practical habits that matter more than the generator
Never reuse a password across sites. Credential-stuffing attacks — taking a breached username and password and trying them everywhere — are effective precisely because reuse is so common, and no amount of password strength protects against it.
Use a password manager. It is the only realistic way to have a different strong password everywhere, and the marginal risk of the manager itself is far smaller than the risk of reuse.
Turn on two-factor authentication wherever it is offered. It protects the account even if the password is compromised, which is a stronger guarantee than any password can provide alone.
And be wary of arbitrary composition rules. A site demanding exactly 8–12 characters with one symbol is imposing a weaker password than you would otherwise choose, and often signals that passwords are being stored badly behind the scenes.
Frequently asked questions
Are the generated passwords sent anywhere?
No. They are generated in your browser by crypto.getRandomValues and never leave the page. Nothing is logged.
How long should a password be?
At least 16 characters for ordinary accounts, longer for anything valuable. Length contributes more to strength than character variety.
Are passphrases as secure as random passwords?
Per character, no — but a long enough passphrase is equally strong and far easier to remember. Use them for the few passwords you must type from memory.
Is Math.random good enough for passwords?
No. It is a predictable pseudo-random generator. This tool uses the cryptographically secure source instead.
What is entropy?
A measure of unpredictability in bits: length × log₂(alphabet size). Under 50 is weak, 75 is reasonable, 100+ is strong.
Why does the tool avoid look-alike characters optionally?
Because I, l, 1, O and 0 are easy to confuse when a password has to be read or transcribed by hand. It costs a little entropy for a lot of convenience.