Skip to main content
PG

Password Generator

Generate strong, random passwords with full control over length and character types — created securely in your browser, never sent anywhere.

Did you like the tool? Thanks!
Share:

How to Use Password Generator

Drag the slider to set a length from 4 to 64 characters, then choose which character types to include — uppercase letters, lowercase letters, numbers and symbols. Toggle "Exclude ambiguous characters" to drop easily-confused characters like l, 1, I, O and 0, or "Exclude duplicate characters" for a password with no character repeated. A password generates automatically as you change any setting, with a live strength indicator underneath showing the estimated bits of entropy. Use "Generate 5 more" for extra alternates, and the copy button next to any result to grab it instantly.

About Password Generator

A strong password is, at its core, a string that is hard for both a person and a computer to predict. The single biggest factor in how hard a password is to guess is not cleverness — swapping an "a" for an "@" or ending in "123!" — but entropy: how many possible passwords exist given the length and character set used, and how randomly one was actually picked out of that space. A truly random 16-character password drawn from upper case, lower case, digits and symbols has roughly 105 bits of entropy, which puts a brute-force guess firmly outside any realistic timeframe, even for an attacker with enormous computing resources. A memorable password chosen by a person, by contrast, tends to draw from a far smaller effective space than its length suggests, because people gravitate toward dictionary words, keyboard patterns and predictable substitutions that password-cracking tools already account for. This is why password generators exist: computers are far better than people at picking truly unpredictable characters, and a generated password never needs to be memorised if it's kept in a password manager — which is how most current security guidance recommends handling passwords, rather than reusing a handful of memorable ones across many sites. The length slider matters more than most people expect. Every additional character multiplies the size of the guessing space by the size of the character pool, so a 20-character password is astronomically harder to crack than a 12-character one, even using the exact same character types — length compounds, it doesn't just add. Two convenience options sit alongside the core generation controls. "Exclude ambiguous characters" removes characters that are easy to misread or mistype when a password needs to be typed by hand rather than pasted — useful for a password read off a screen, printed, or dictated over the phone. "Exclude duplicate characters" guarantees no character repeats, which a small number of legacy systems and printed forms still require, though it slightly narrows the space of possible passwords for a given length. Neither option should be enabled by default for maximum-security use cases, since both reduce the total number of possible outcomes for a given length — every excluded character is one less option at each position. Every character in this generator is chosen using the browser's cryptographically secure random number generator (the Web Crypto API), not JavaScript's ordinary Math.random(), which is not designed to be unpredictable enough for security purposes. The entire process — generation, strength scoring, and copying — runs locally in your browser. The passwords this tool creates are never transmitted, logged, or visible to anyone but you, and closing or refreshing the page discards them completely.

Details & Tips

How each password is built: the four character pools are Uppercase A–Z (26 characters), Lowercase a–z (26 characters), Numbers 0–9 (10 characters) and Symbols `!@#$%^&*()_+-=[]{}|;:,.<>?/~` (28 characters). Every pool you have checked is concatenated into one combined pool; if "Exclude ambiguous characters" is on, the characters i, l, 1, L, o, 0 and O are stripped from that combined pool first, since these are the characters most often confused for one another across fonts and handwriting. The tool then picks one character at a time from the resulting pool, `length` times, using an unbiased rejection-sampling method built on `crypto.getRandomValues()`: it draws a random 32-bit integer and only accepts it if it falls within the largest multiple of the pool size below 2^32, discarding and re-drawing otherwise. This avoids the subtle bias a plain modulo operation introduces when the pool size doesn't evenly divide 2^32 — without rejection sampling, some characters would be very slightly more likely to appear than others, which matters for a security-focused tool even when the bias is tiny. If "Exclude duplicate characters" is checked, the generator repeats the whole draw — up to 200 attempts — until it produces a password with no repeated character. If the requested length is longer than the available pool (for example, asking for a 40-character password from a 26-letter pool with duplicates excluded, which is mathematically impossible since a unique-character password can never be longer than the pool it draws from), the option is automatically unchecked and a short note explains why, rather than silently generating a password with repeats or hanging indefinitely. Worked example: with only Numbers checked and a length of 16, every character comes from the 10-digit pool, giving roughly 53 bits of entropy — labelled "Good". Checking all four types at length 16 draws from a roughly 94-character combined pool, giving about 105 bits — "Strong". The strength label uses the formula bits = length × log₂(pool size): under 28 bits is "Weak", under 36 is "Fair", under 60 is "Good", and 60 or above is "Strong". The four-segment bar fills in proportion to this label so you can see the strength at a glance without reading the number. If every checkbox is unchecked, the combined pool is empty and the tool shows an error asking you to select at least one character type, rather than generating an empty or misleading result. "Generate 5 more" reruns the exact same generation logic five times using your current settings, giving you alternates to choose from without disturbing the primary result above.

Frequently Asked Questions

How secure are the passwords this tool generates?
Each character is chosen using the Web Crypto API's cryptographically secure random number generator with unbiased rejection sampling, not JavaScript's ordinary Math.random(). A 16-character password using all four character types has roughly 105 bits of entropy, well beyond what any realistic brute-force attack could crack.
What does "bits of entropy" mean?
Entropy measures how many possible passwords exist given the length and character pool, expressed as a power of two. Each additional bit doubles the number of possible passwords an attacker would need to try, so higher bits mean an exponentially harder guessing problem.
Should I turn on "Exclude ambiguous characters"?
Only if you need to type, read aloud, or write down the password by hand — it removes characters like l, 1, I, O and 0 that are easy to misread. It slightly reduces the character pool, so leave it off for passwords you'll only ever paste from a password manager.
Should I turn on "Exclude duplicate characters"?
Only if a specific system requires it (a small number of legacy forms do). It narrows the pool of possible passwords for a given length, so it is not recommended by default — most modern systems have no such restriction.
Why did "Exclude duplicate characters" uncheck itself?
A password with no repeated characters can never be longer than the number of characters in the pool it draws from. If your chosen length exceeds the pool size, the option is automatically disabled and a note explains why, so generation doesn't fail or hang.
Is it safe to use this for banking or email passwords?
Yes — the generation method meets the same cryptographic standard used by password managers. As with any password, store it in a password manager rather than reusing it elsewhere or writing it somewhere insecure.
Does this tool store or transmit the passwords it generates?
No. Everything runs locally in your browser using JavaScript — nothing is sent to a server, logged, or saved anywhere. Refreshing or closing the page discards the result completely.
What characters are included in the symbols pool?
The symbols character set is !@#$%^&*()_+-=[]{}|;:,.<>?/~ — 28 characters covering the punctuation and special characters accepted by the vast majority of password fields.
How long should my password be?
Longer is always stronger for the same character types. 12 characters with all four types is a reasonable minimum today; 16 or more is comfortably future-proof, and the strength indicator will show "Strong" once you're in a safe range.
Can I generate more than one password at once?
Yes — use "Generate 5 more" to produce five additional alternates below the main result, each with its own copy button, without changing the primary password shown at the top.
Why is the password sometimes only digits or only letters?
The pool is built only from the character types you have checked. If only "Numbers" is checked, every character comes from the 10-digit pool — check additional boxes to widen the pool and increase strength.

Also Available As

password generator, random password generator, secure password generator, strong password maker, generate password online

Found a Problem?

Let us know if something with Password Generator isn't working as expected.

Thanks — we'll take a look.