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.
- 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.
- The remaining positions are filled one at a time from all the enabled sets combined.
- 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.
