Password Generator

Creates a strong random password on your own device using the browser's cryptographic random number generator. The password is never sent anywhere — not to this site, not to any server — so nothing but your own browser ever sees it. Press Run again for a new one.

Ad placeholder: Resp_Horizantal_1 (horizontal)
Ad placeholder: Resp_Square_1 (square)

Creates a strong random password on your own device using the browser's cryptographic random number generator. The password is never sent anywhere — not to this site, not to any server — so nothing but your own browser ever sees it. Press Run again for a new one.

Leave the box empty for a 20 character password using every character type, or set options as key=value pairs: length=24, symbols=false, digits=true, upper=true, lower=true, ambiguous=true. A bare number is treated as the length.

Lookalike characters (l, I, 1, O, 0) are left out by default so the password survives being read aloud or copied by hand, and at least one character from each enabled type is always included so the result passes the rules most sites enforce.

Use cases

  • Creating a unique password for a new account
  • Generating a credential that meets a required character policy

FAQ

Is the password sent to a server?

No. It is generated in your browser with crypto.getRandomValues and never leaves your device. That is why this tool runs client-side rather than on the server.

What do the entropy bits mean?

How much guessing a password resists, on a log scale — each extra bit doubles the work of a brute-force search. Above roughly 80 bits is comfortable for an account password. The figure assumes every character was drawn independently, so guaranteeing one character per type makes the true value very slightly lower than reported.

Why are quotes and backslashes missing from the symbols?

They break when a password is pasted into a shell command, a CSV, or a JSON config file. A password you cannot paste is worse than a slightly smaller character pool.

Why are some letters and numbers excluded?

Lowercase l, uppercase I, the digit 1, uppercase O, and the digit 0 are easily confused with each other. Set ambiguous=true to include them for a slightly larger pool.