Skip to content

Password Generator

Generate random passwords by length and character set, or passphrases made of English words. Estimated entropy in bits and a strength rating update as you go.

Generation mode
Length: 16
Character sets to include
Only the symbols listed here are used in the password.

Leaves out characters that are easy to mix up on screen, such as digit 0 vs. uppercase O, digit 1 vs. lowercase l vs. uppercase I, and the vertical bar |.
You can generate 1 to 20 at a time.

Results

Results appear here once the options are set.

What you enter is processed only in this browser and is never sent to a server. How it works

A shield, padlock, key and password dots illustrate password generation

How to use it

Under “Generation mode”, choose “Random characters” or “Passphrase (word combo)”. Five results are already there when the page opens, and changing any option regenerates the whole list. “Regenerate” is only for when you want to keep the settings and get different values.

  • Random characters: “Length” runs from 8 to 128 characters and starts at 16. Under “Character sets to include”, switch “Lowercase (a-z)”, “Uppercase (A-Z)”, “Digits (0-9)” and “Symbols” on or off. Only symbols start switched off. Once “Symbols” is on, you can edit the “Symbol set (editable)” box.
  • Passphrase (word combo): “Word count” runs from 3 to 10 and starts at 4. “Separator” is whatever goes between the words, up to 4 characters, and starts as a hyphen (-). “Capitalize the first letter of each word” and “Add a number at the end (0-99)” both start switched on, so you get something like Maroon-Cymbal-Tiger-Harbor-60.
  • “How many to generate”: 1 to 20.

Above “Results”, one line such as “Strength: Very strong · Estimated entropy: about 95 bits” shows the rating and bit count for the current settings. Every value in the list was made with those same settings, so they are all equally strong and you can take any of them. Copy one, use “Copy all” to take the lot, or press “Download as .txt” to save a passwords.txt file (passphrases.txt for passphrases) with one value per line.

Nothing you generate is kept anywhere. Reloading the page gives you a fresh set, so copy the one you want straight away. The downloaded .txt file holds the passwords in plain text, so it is safer to delete it once they are in your password manager.

How each character is picked

A random-character password is built in three steps.

  1. One character is drawn from each character set you switched on. That is why a password with digits enabled always contains at least one digit.
  2. The remaining positions are filled one at a time from all the enabled sets combined.
  3. The whole thing is shuffled, so the characters drawn first don’t always sit at the front.

A passphrase takes as many different words as “Word count” says from the list of 256 English words and joins them with the “Separator”.

In both modes the random numbers come from the browser’s crypto.getRandomValues. Math.random(), whose next value can sometimes be guessed from earlier ones, is not used. Taking a raw random number and using its remainder after dividing by the number of characters would make the characters near the start of the set come up very slightly more often. This tool throws away the numbers that cause that tilt and draws again, so every character is equally likely.

Reading the estimated entropy and strength

Entropy says, in bits, how many different passwords the current settings could produce. Each extra bit doubles the number of possibilities. For random characters the estimate is length × log2(number of available characters). Lowercase, uppercase and digits give 62 characters. Adding symbols brings in the 27 default symbols, for 89.

The tool assigns these ratings. They are this tool’s own cut-offs, and a rating name is not a guarantee against any particular attack.

Strength Estimated entropy
Weak Under 40 bits
Fair 40 bits to under 60 bits
Strong 60 bits to under 80 bits
Very strong 80 bits or more

Here is what the screen shows at different lengths.

Length Lowercase, uppercase, digits (62) With symbols (89)
8 characters about 48 bits, Fair about 52 bits, Fair
12 characters about 71 bits, Strong about 78 bits, Strong
14 characters about 83 bits, Very strong about 91 bits, Very strong
16 characters about 95 bits, Very strong about 104 bits, Very strong

Extra length buys more than extra character sets. Adding symbols to a 16-character password adds about 8 bits, while simply making it two characters longer, without symbols, adds about 12. With digits alone, 8 characters is about 27 bits (Weak), and it takes 24 characters to reach “Very strong”. Turning on “Exclude look-alike characters (0 O 1 l I |)” cuts the 62 characters to 57, which takes a 16-character password from about 95 bits to about 93.

These figures are estimates. Because one character from each set is placed first, slightly fewer combinations are actually possible than the formula assumes. The gap is small, so the calculation ignores it.

Passphrase word count and strength

The list has 256 words, so each word adds a little under 8 bits. It is a little under because no word is used twice: the second word is one of 255, the third one of 254. “Add a number at the end (0-99)” adds about 6.6 bits. “Capitalize the first letter of each word” and the “Separator” are fixed rules, so they are not counted.

Word count No number Number added
3 words about 24 bits, Weak about 31 bits, Weak
4 words about 32 bits, Weak about 39 bits, Weak
5 words about 40 bits, Fair about 47 bits, Fair
6 words about 48 bits, Fair about 55 bits, Fair
7 words about 56 bits, Fair about 63 bits, Strong
8 words about 64 bits, Strong about 70 bits, Strong
9 words about 72 bits, Strong about 78 bits, Strong
10 words about 80 bits, Very strong about 86 bits, Very strong

The starting settings (4 words plus a number) come to about 39 bits, which is “Weak”. To get close to a 12-character random password you need 8 to 9 words.

Stringing words together works on the same principle as Diceware, where you roll dice to choose the words. The Diceware list, though, has 7,776 words, so each word is worth 12.9 bits, and even with that list the Diceware page recommends 6 or more words depending on what the passphrase protects. This tool’s list is far smaller, so the same number of words gives you less entropy. Pick your word count from the bits in the table above.

Random characters or a passphrase?

For accounts you keep in a password manager and only ever paste, random characters are the better choice. At 16 characters the rating is “Very strong”, and since you never have to memorize it, it doesn’t matter that it is hard to read.

For things you must remember and type by hand, such as a device unlock or your password manager’s master password, a passphrase is easier to live with. The trade-off, as the table shows, is that you need quite a few words.

Either way, use a different one for every site. Attackers take passwords leaked from one site and try them as-is on other sites (this is called credential stuffing), so a reused password lets one leak spread to the rest of your accounts. Raise “How many to generate” to make values for several accounts in one go.

Sources

Frequently asked questions

When the calculated bits are not a whole number, which value decides the strength rating?

The rounded number of bits you see on screen. A 10-character password of lowercase letters, uppercase letters and digits works out to 59.54 bits. It displays as "about 60 bits", and the rating is the one for 60 bits, "Strong". In the same way a 10-word passphrase with no number (79.74 bits) shows "about 80 bits" and is rated "Very strong". So you can read the bits on screen straight against the rating table.

What if the site I'm signing up for rejects some symbols?

Turn on "Symbols", then trim the "Symbol set (editable)" box down to the symbols that site accepts. Only the characters in that box are used, and a character typed twice counts once. The estimated entropy is recalculated for the shorter set. With lowercase, uppercase and digits plus just the three symbols !@#, there are 65 characters to draw from, which gives about 96 bits at 16 characters. If you delete everything in the box, you get the message "The symbol set is empty." and nothing is generated.

When should I turn on "Exclude look-alike characters"?

Turn it on when you will read the password off the screen and type it into another device, or write it down on paper. In some fonts the digit 0 and capital O, the digit 1, lowercase l and capital I, and the vertical bar | look almost the same, so they are easy to get wrong when copying by eye. If you only ever copy and paste, you don't need it. Having it on leaves fewer characters to draw from, so the entropy drops slightly.

Can I get a passphrase in a language other than English?

No. Whichever language you view this page in, the words come from the same list of 256 English words. They are simple English nouns, adjectives and verbs chosen for this tool, and there is no option to swap the list or add your own words. The upside of English words is that you can type them as they are, even on a device or login screen that has no other keyboard layout set up.

Can the same character or the same word show up more than once?

In a random-character password, yes. Each position is drawn independently, so a character can repeat, and that does not make the password weak. Within a single passphrase, no word is used twice. When you generate several at once, each one is drawn separately, so two different passphrases can share a word.

Last updated: