What the results show
- The password — a fresh random string built from the character types you enable. It includes at least one character from every selected set, so a password that allows symbols always contains one.
- Strength — a coarse rating (Weak, Fair, Strong, Very strong) based on how hard the password would be to guess.
- Entropy in bits — the number of bits of randomness. More bits means exponentially more possible passwords; roughly 60 bits is strong and 80+ is very strong.
How it works
Each character is chosen with your browser's cryptographically secure random number generator (crypto.getRandomValues) — the same class of randomness used for encryption keys, not the predictable Math.random. Indexes are drawn with rejection sampling so every character in the pool is equally likely, with no bias toward the start of the set.
Strength is estimated as length × log₂(pool size). Adding more character types enlarges the pool, and each extra character multiplies the number of possibilities — which is why a longer password almost always beats a shorter, more complex one.
Frequently asked questions
Is my password sent anywhere or saved?
How long should my password be?
What does “exclude ambiguous characters” do?
Why does it show a dash instead of a password?
Is this random enough to be secure?
crypto.getRandomValues is a cryptographically secure source, and the unbiased sampling means every password of a given length is equally likely. The entropy readout tells you how much randomness each one carries.