Password Generator
Pick a length and the character sets you want, then generate. The password is created with your browser’s cryptographically secure random source (Web Crypto).
How it works
The generator builds a pool from the character sets you select, removes the look-alikes if that option is on, then fills the password by drawing one random index per position fromcrypto.getRandomValues — the same secure source your browser uses for TLS.
Because it uses rejection-free uniform sampling, every character in the pool is equally likely, so a 16-character password with all four sets has roughly 88 bits of entropy.
Frequently asked questions
Is the password really random?
Yes. It comes from crypto.getRandomValues, a cryptographically secure random number generator built into the browser — not Math.random(), which is predictable.
What are “look-alikes”?
Characters that are easy to confuse when reading a password out loud or in a low-resolution font — capital I, lowercase l, the digit 1, capital O and the digit 0. Turn this on to avoid them.

