Password generator
87 characters to draw from
Generated in your browser · never sent, never stored
A strong password is a long one drawn at random. Twenty characters from the full 87-character pool is about 129 bits of entropy; eight with a substituted @ and a trailing exclamation mark follow the pattern cracking software tries first. The same draw makes a five-word passphrase, a PIN, or a token in hex, Base32, Base58, Base62 or as a UUID.
How to generate a password
The number under the meter is entropy in bits, and it measures the generator, not the string it produced. That distinction matters: this tool knows the password was picked uniformly at random from a pool of a known size, so log2(pool^length) is exactly right. A checker looking at a password somebody invented can only guess, and will happily award "Summer2024!" a score it has not earned. The estimated guessing time assumes an offline attack at ten billion guesses a second, which is roughly one modern GPU against a poorly-hashed database, pessimistic on purpose.
The character sets are what let one form do the work of several, and the PIN mode is the same idea made explicit: digits only, three to twelve of them, leading zeros kept. That last part matters more than it sounds, because a generator that quietly drops a leading zero removes a tenth of the possible values from a four-digit PIN. Human PINs cluster hard — 1234, 1111, 0000 and four-digit years beginning 19 cover a startling share of every PIN in real use — so drawing one is worth the two clicks. A PIN is weak by construction either way: four digits is ten thousand possibilities, fine where something limits the attempts and useless anywhere an attacker guesses freely.
At the other end, a secret only a machine has to read can be as long and ugly as you like. The usual target for an API key or a session token is 128 bits, which twenty characters from the full pool clears with a little to spare. Letters and digits only if the value has to survive a URL or a shell without escaping; the symbol set is the part that causes trouble in transit. The named alphabets do that job explicitly: hex carries four bits a character, base32 five, base58 and base62 just under six, and a version 4 UUID a fixed 122 however you slice it. Thirty-two hex characters is the 128-bit target written the way most APIs expect to receive it, and base58 is the one to reach for when a person has to read the value out, since it leaves out 0, O, I and l.
Words are the same arithmetic one level up, and they are the mode for the handful of passwords you type by hand instead of pasting. Each word is log2 of the list size: this page draws from about 48,500 English words of four letters and up, which is 15.5 bits each, so five words is roughly 78 bits and six is 93. Diceware built the idea around a 7,776-word list and physical dice at 12.9 bits a word; the draw here is the same procedure with crypto.getRandomValues in place of the dice, which is only a downgrade if your threat model distrusts the machine you are sitting at. What a phrase buys is recall, not strength — 78 bits from five words is 78 bits, no better than thirteen random characters — and the separator and the capitals add nothing an attacker does not already assume, because both are fixed transforms that anyone generating candidates applies too. The trailing number is the exception and the meter counts it: it is drawn at random from 10 to 99, which is a genuine log2(90) — about 6.5 bits, taking five words from 78 to 84 and the band from strong to excellent. A number you choose yourself is worth far less than that, which is the whole difference.
Length is almost always the cheaper lever. Going from 62 characters in the pool to 87 buys about half a bit per character, where four extra characters buy nearly twenty-four. That is why current NIST guidance raises the minimum length and drops composition rules, and not the other way round.
What people use it for
- Replacing a password that turned up in a breach
- Drawing a four or six-digit PIN by allowing only digits
- Drawing a five-word passphrase for the one password you type by hand
- Generating a 32-character hex API key or a base58 token a person can read out
- Filling a password manager entry for a new account
- Meeting a site policy that demands a symbol and a capital
Questions
Neither. It is drawn by your browser using crypto.getRandomValues, the operating system’s own cryptographic generator, and it lives in a variable until the next draw replaces it. Nothing is written to disk, a cookie or local storage, and disconnecting from the network leaves the tool working.
Sixteen characters is a reasonable floor and twenty is comfortable. Beyond about thirty you are past the point where length is the weak link.
They help, but less than people think. Adding four characters of length buys more entropy than adding the symbol set does. Use them where a site demands them.
No. The point of a generated password is that it is unique to one account, so a breach of one site cannot open another. That is what a password manager is for.
Yes, and it holds for words as much as for characters. People choosing "randomly" reach for the same shapes: a capital at the front, a digit at the end, a small vocabulary of related words. Cracking tools are built around exactly those habits, which is why picking the words of a passphrase yourself defeats it too.
At the same entropy, identical: the maths does not care. The advantage of words is that you can remember them, which only matters for the two or three passwords you type by hand. Switch the draw to Words for one.
Four is the practical minimum, five is comfortable, six for a master password or a disk key. Each word from this list carries 15.5 bits, so five is about 78.
The English dictionary this site already ships for its word tools, filtered to four letters and up because shorter entries are mostly abbreviations nobody would recognise in a phrase. The count is shown under the controls so the entropy figure can be checked.
Yes. Set the length to four or six and untick everything except 0-9. Leading zeros are kept, so 0042 is a possible result.
Six rather than four wherever the system allows it: it multiplies the guesses needed by a hundred, for two extra keypresses.
Because everyone else has the same idea. Birth years, repeated digits and 1234 dominate real-world PIN data.
Yes. Aim for at least 128 bits, which twenty characters from the full pool clears. Drop the symbols if the value has to survive a URL or a shell.
Yes. The draw strip switches the alphabet: hex, base32, base58, base62, or a version 4 UUID. Length moves to 32 when you pick one, since 32 hex characters is the 128-bit target and 20 would be 80.
Base32 or base58. Both leave out the pairs that get misread; base58 drops 0, O, I and l for exactly that reason.
A version 4 UUID carries 122 random bits, so mathematically yes. In practice UUIDs get logged, printed and put in URLs because everything treats them as identifiers, so a purpose-made token is the safer habit.
log2(pool ^ length): the number of equally likely passwords the settings allow. 60 bits is a working floor, 80 puts an offline attack out of practical reach.
Because they are hard to tell apart in many fonts. It removes more than those five: l, o, I, O, 0 and 1, and the punctuation that is easy to mistype or lose in a copy — ()[]{};:,.<> — eighteen characters in all, which takes the full pool from 87 to 69 and a sixteen-character password from 103 bits to 98. Turn it on for a password you will read aloud or type from paper, off for one that lives in a password manager.
Usually a length cap or a banned symbol. Shorten it or untick the symbol set rather than falling back on something you invented.