Security · Runs in your browser
Generate a strong password or test the one you have
A new random password is already in the box. Change the length or the character types and it updates at once. Paste a password you already use further down to see what it is worth. Nothing you type or generate leaves this page.
FreeNo account · no daily limit
- Random values come from your browser's
crypto.getRandomValues, never fromMath.random - Passwords of 6 to 96 characters, passphrases of 3 to 12 words
- Strength in bits, plus crack time at three attack speeds
- No network requests: nothing is uploaded or stored
Random password
The example shows how a common pattern scores. Replace it with your own; it stays in this page.
Crack times and pattern notes
Passphrase from random words
Easier to type from memory than random characters. Each word comes from a built-in list of 512 words, so every word adds exactly 9 bits.
What you get for each password
- The password itselfready to copy with one click
- Entropy in bitsworked out as length × log2 of the alphabet size, with the alphabet listed
- A ratingfrom Very weak (under 28 bits) through Borderline (40 to 59) and Strong (60 to 79) to Very strong (80 bits and more)
- Crack time at three speeds100 guesses a second (an online form), 10 thousand a second (leaked bcrypt hashes) and 100 billion a second (fast hashes on a GPU rig)
- Pattern notes for your own passwordyears, keyboard runs, counting sequences, repeated characters, dictionary words and the word-then-digits shape
The page makes no network requests. There is no breach-list lookup, because it would need to send data derived from your password.
How the numbers are worked out
Where the randomness comes from
Every character and every word is drawn with crypto.getRandomValues, the random source your browser provides for cryptography. The page uses rejection sampling instead of a plain modulo, so each character in the alphabet is exactly as likely as any other.
What the bits figure means
The figure describes how the password was made: length × log2 of the alphabet size. It is the uncertainty an attacker faces who knows the settings but not the result. Crack time assumes half of all possibilities have to be tried. The same password can hold for centuries against a login form and fall much sooner against a leaked file of fast hashes.
Why your own password can score lower than it looks
For a password you paste in, the figure is an upper bound. It assumes random characters. A word followed by a year is far easier to guess than its length suggests, so the page lists the patterns it finds and marks the result as weaker when one turns up. A password manager can store a generated password, so you do not have to remember it.
Questions before you use it
How are passwords generated?
With crypto.getRandomValues, the cryptographically secure random source built into your browser. Math.random is not used anywhere. Rejection sampling keeps every character equally likely. Generation happens in your browser, and no password is sent to a server.
What does the strength figure in bits mean?
It is length multiplied by log2 of the alphabet size. More bits means more guesses an attacker needs. Under 28 bits is rated very weak, 60 to 79 bits strong and 80 to 111 bits very strong. Crack time is shown at 100 guesses a second, 10 thousand a second and 100 billion a second.
Is my password checked against breach lists?
No. The page makes no network requests, and a breach lookup would have to send data derived from your password. Instead, the test looks for patterns that cracking tools try first: years, keyboard runs, counting sequences, repeated characters, dictionary words and a word followed by digits.
What is a passphrase and when should I use one?
A passphrase is a row of random words. It is easier to type from memory than random characters. Here you pick 3 to 12 words from a built-in list of 512 words, worth 9 bits each, choose a separator and optionally capitalise each word or append two digits. Use one where you have to type the password yourself, such as a master password.
Can I choose the characters?
Yes. Pick lower case, upper case, digits and the symbols !#$%&*+-=?@^_~ in any combination, and set the length from 6 to 96 characters. You can leave out the look-alikes I, l, 1, O and 0, and require at least one character of each selected type.