What makes this password generator different?
This is a privacy-first, browser-only password generator. Every random byte comes from your operating system's cryptographic random number generator via crypto.getRandomValues — never from Math.random. The page makes no network request to generate a password, and the generated value never leaves your tab. Open the Network panel in DevTools and click Generate: it stays silent.
How does this password generator work?
The tool runs entirely in JavaScript inside your browser. There is no server round-trip, no analytics beacon carrying the password, and no remote font request after the page loads.
- Seed from the OS CSPRNG. Every random integer is drawn from
crypto.getRandomValues(new Uint32Array(n))— the same cryptographically-secure source the browser uses for TLS key material andcrypto.randomUUID.Math.randomis intentionally never called; a project-wide grep enforces it. - Charset assembly. Random-character mode concatenates the enabled character classes — uppercase, lowercase, digits, symbols — into a single alphabet. The 'Exclude ambiguous' toggle then strips visually similar glyphs (
0,O,o,1,l,I,|, backtick) so the password is unambiguous when read aloud or copied by hand. - Unbiased index sampling. Mapping a 32-bit unsigned integer to a charset index naively (modulo) introduces a small bias when the charset size does not divide 2^32 evenly. The tool uses rejection sampling: any sample that falls in the modulo tail is discarded and re-drawn, so every character in the charset is equally likely.
- Bulk generation. For random-character mode you can request 1 to 50 passwords in a single click. Each result is rendered as a row with its own entropy estimate, strength bucket, and Copy button. The 'Copy all' button joins the rows with newlines so you can paste into a CSV or vault import file.
- Passphrase mode. Flip the mode toggle and the page lazily fetches the EFF Short Wordlist #1 (1296 public-domain English words) on first use. Five-word passphrases give about 51.7 bits of entropy — enough for everyday accounts and far more memorable than a 9-character random soup. After that one same-origin fetch, the page is silent again.
Why use this password generator?
- Your password never leaves your browser. There is no server endpoint, no analytics call carrying the value, no remote font, no telemetry. Open DevTools, generate a password, and watch the Network panel stay empty.
- Cryptographically secure randomness, by construction. Every integer comes from
crypto.getRandomValues, with rejection sampling against modulo bias. The most common bug in browser password generators — usingMath.randomfor entropy — is structurally impossible here. - Two modes, one tool. Random-character mode produces high-entropy strings for password managers; passphrase mode produces human-memorable xkcd-style strings (
correct-horse-battery-staple) backed by the EFF Short Wordlist #1. Same privacy model in both. - Transparent entropy. Each generated row shows its entropy in bits and a clear strength label, so you can see at a glance whether a 12-character no-symbol string is actually as strong as a 5-word passphrase. No marketing fluff, just the numbers.
What are common applications of generated passwords?
Whenever you need a fresh random secret, this is the tool that minimises the trust surface:
- Password manager imports. Generate 50 strong passwords in one batch, click Copy all, paste into your vault's CSV import. The values never round-tripped through any server, so there is no leak window between generation and storage.
- Master passphrases. Switch to passphrase mode, pick 6 or 7 words, optionally capitalize each word, and you have a high-entropy string you can actually remember without writing it down. About 62 bits of entropy from 6 words — well above the threshold for an offline attack.
- API keys and tokens in side projects. Need a one-off shared secret for a webhook signing key or a development database password? Generate a 32-character symbol-rich string here, copy it once, and the only place it ever existed in transit was inside your own browser tab.
What does a generated password example look like?
Set length to 16, leave all four character classes enabled, and click Generate. The charset has 26 + 26 + 10 + 32 = 94 characters, so each generated character carries log2(94) ≈ 6.55 bits of entropy. Sixteen characters land at about 104.9 bits — well above the 80-bit 'very strong' threshold and effectively impossible to brute-force with current hardware. Now flip to passphrase mode, pick 5 words with the default hyphen separator: cocktail-sprig-aspect-magenta-tonic carries log2(1296) x 5 ≈ 51.7 bits. Memorable, typeable, and stronger than the average human-chosen password.
Generate, copy, move on. The page never sees a server, the password never leaves your tab, and the entropy is calculated from first principles. That's the whole promise.