How it works
Every character or word is picked with your browser's cryptographic random generator (crypto.getRandomValues) and rejection sampling, so each choice is equally likely. The password is made on your device. It isn't sent anywhere, saved, or put in the share link.
When you choose several kinds of characters, you get at least one of each. The generator does this fairly: it makes a fully random password and, if a kind is missing, throws it away and starts again. Every password that meets the rule is then equally likely.
How strength is measured
Strength is measured in bits of entropy: log₂ of how many passwords this generator could have made. Each extra bit doubles the guesses needed.
passphrase bits = words × log₂(words in the list)
With all four kinds there are 94 characters (26 + 26 + 10 + 32 symbols). 16 characters gives 16 × log₂(94) = 104.9 bits. Requiring one of each kind removes a few combinations, leaving 104.6 bits. A 6-word passphrase from this page's list of 1,662 short common words gives 6 × log₂(1,662) = 6 × 10.70 = 64.2 bits. That's weaker than the 16-character password but much easier to type and remember. Use 8 words for about 86 bits.
The labels are a rule of thumb: under 35 bits weak, 35–59 fair, 60–79 good, 80–99 strong, 100 or more very strong. The time to guess assumes an attacker trying 10 billion guesses a second offline, and on average they'd need to try half of all possibilities.
Limitations
- Entropy only describes passwords made at random like this. A password you make up yourself, like a name plus a year, is far weaker than its length suggests.
- A strong password doesn't help if it's reused. Use a different one for every site, keep them in a password manager, and turn on two-step sign-in where you can.
- Some sites limit length or which symbols they accept. Turn off symbols or shorten it if a site rejects it.