Generate a secure password
Create a random password with the character sets and length you choose. Generated with the browser's cryptographic RNG, never sent anywhere.
Set the length and which character sets to include.
A quick entropy estimate updates as you change the options.
One click copies the password. Nothing is stored or sent anywhere.
Frequently asked
Is this password sent to a server?
No. It's generated using your browser's cryptographically secure random number generator (Web Crypto's getRandomValues) and never leaves the tab.
Why isn't Math.random used?
Math.random isn't cryptographically secure. Its output can, in principle, be predicted. Passwords use crypto.getRandomValues instead, the same source browsers use for keys and tokens.
What does the strength meter measure?
A rough entropy estimate. Length multiplied by the log2 of how many characters are in play. It's a useful signal, not a guarantee against every attack.
What does "exclude ambiguous" do?
Drops characters that look alike in many fonts (l, 1, I, o, O, 0) useful for passwords you'll need to type from a printout.
Does this work offline?
Yes, once the page has loaded.