Password Generator

Strong random passwords, created in your browser. Nothing is sent or stored.


What makes a password strong?

Length matters most. Each extra character multiplies the number of guesses an attacker needs. A random 16-character password using letters, numbers and symbols is far beyond brute-force reach today. Use a different password for every account and keep them in a password manager.

Tips

FAQ

Is this safe to use?

Passwords are made locally with your browser's cryptographically secure random number generator (crypto.getRandomValues). They are never transmitted or saved.

How is the strength estimated?

We show entropy in bits: length times the base-2 log of the character set size. Over 80 bits is strong; over 100 is excellent.

How to generate a password

  1. A password appears as soon as the page loads. Press Generate new for another one. Any change to the options also creates a fresh password automatically.
  2. Drag the Length slider, which runs from 8 to 64 characters. The default is 16.
  3. Tick the character types you want: lowercase a-z, uppercase A-Z, digits 0-9 and symbols. If a site refuses symbols, untick that box.
  4. Switch on Avoid look-alikes if you will ever read the password aloud or type it from a printout.
  5. Press Copy and paste it straight into your password manager or the site's form. The button says "Copied" for a moment to confirm.

If you untick every box the page shows "Select at least one type" instead of a password.

How the password is built

The generator never uses Math.random. Every choice comes from crypto.getRandomValues, the browser's cryptographically secure source of random numbers. It also avoids a subtle bias: when you map a random 32-bit number onto a list of, say, 85 characters with a simple remainder, the first few characters come up slightly more often. This tool throws away any random number that falls in the uneven leftover range and draws again, so every character in the pool is exactly equally likely.

The steps are: put together the pool from the ticked types, pick one character from each ticked type so that the result always contains every kind you asked for, fill the remaining positions from the whole pool, then shuffle all positions with a Fisher-Yates shuffle. The shuffle matters, because otherwise the guaranteed characters would always sit at the start.

The symbol set is exactly 23 characters: ! @ # $ % ^ & * ( ) - _ = + [ ] { } ; : , . ?. Quote marks, slashes and angle brackets are left out on purpose, since they often cause trouble inside forms, shells and URLs.

Reading the entropy figure

Under the password you see something like "About 103 bits of entropy - excellent". The page computes it as length multiplied by log base 2 of the pool size, then rounds. A few worked examples:

The labels are fixed thresholds: 100 bits and above is excellent, 80 and above strong, 60 and above fair, anything lower weak. Each extra bit doubles the number of guesses an attacker needs, so 103 bits is not slightly better than 77 bits, it is about 67 million times harder to guess. The figure is a close estimate rather than an exact measure, because forcing one character of each type slightly reduces the number of possible results.

When to use what

Tips and limits

More questions

Why does the same length sometimes give different strength ratings?

Strength depends on the size of the pool as well as the length. Sixteen lowercase letters give about 75 bits, while sixteen characters drawn from all four types give about 103. Ticking more types or adding length both raise the figure.

Can two people ever get the same password?

In theory yes, in practice no. A 16-character password from an 85-character pool has about 10 to the power of 30 possible values, so a repeat by chance is not a realistic concern.