Random Password Generator

Strong random passwords with full control over length and character sets.

Copy the result before closing this tab.

Generate a unique random password for each account. The default is 20 characters with letters, numbers and symbols. Save the result in your password manager.

What makes a password strong?

Length beats cleverness. Every extra character multiplies the number of possible passwords, so a 20-character random password from the full 94-character set carries about 131 bits of entropy — far beyond what any brute-force attack can search. Substituting a with @ in a dictionary word, on the other hand, adds almost nothing: cracking tools try those substitutions first.

How this generator works

Characters are drawn with crypto.getRandomValues(), the cryptographically secure random number generator built into your browser — never Math.random(). Characters are sampled without modulo bias. Candidates are then accepted only when every selected character class appears; the entropy estimate accounts for that constraint. Generation happens entirely on your device: open your browser's network tab and you'll see that no generated value ever leaves the page.

Practical advice

Use a password manager and give every account its own random password — the one case where you should prefer a passphrase is the handful of secrets you must type from memory, like the password manager's master password. The "no ambiguous characters" option removes 0/O and 1/l/I, which helps when a password has to be read aloud or retyped from paper.

FAQ

How long should a password be?

For anything stored in a password manager, 16 characters from the full set is already far beyond brute-force reach (about 105 bits of entropy) and 20 gives you 131 bits. Length buys far more than cleverness: adding one character multiplies the search space by 94, while swapping a for @ in a dictionary word adds almost nothing, because cracking tools try those substitutions first.

Are these passwords really random?

Every character is drawn with crypto.getRandomValues(), your browser's CSPRNG, using rejection sampling — so each character in the selected set is exactly equally likely, with no modulo bias. Math.random() is never used anywhere on this site.

Should I turn symbols off?

Only if something forces you to. Some legacy systems reject punctuation, and some passwords have to be typed on a phone keypad or read aloud. Dropping symbols costs you about 0.6 bits per character — compensate by adding two or three characters and you are back where you started.

How generation works

About & privacy

Generated on your device

Web Crypto provides the randomness. Generation works offline after the page has loaded.

No tracking or saved values

No analytics scripts, accounts, cookies or local storage. Values stay in this tab until you copy them.

Browser and device security

A compromised browser or device can expose values. For production private keys, use a trusted local tool.

Other generators

All generators ↗