Password Generator

Build a random password or a memorable passphrase with real cryptographic randomness. Entropy, strength and crack time are shown for the exact options you picked — and nothing ever leaves your browser.

🔒 Your data never leaves your device🆓 Free🙅 No sign-up

🔐 Result

Strength
🟣 Very strong
129 bits
Character set
87 symbols
Length
20 characters
Time to crack
98 quintillion years

Assumes the attacker knows exactly how the password was made and has to search half the keyspace on average. A password reused elsewhere, or one sitting in a breach dump, is cracked in zero seconds regardless of these numbers.

⚙️ Settings

4 to 128 characters. Longer beats exotic every time.

Leave empty for the default set. Handy when a site rejects certain symbols.

Entropy is computed from the options you picked: log2(character set) × length for passwords, log2(2048) × words for passphrases. No character class is forced, because forcing one would make this number a small lie.
🔒 Everything is generated in your browser with crypto.getRandomValues. Nothing is sent to a server, nothing is logged, and nothing is stored — reload the page and the password is gone for good. Paste it straight into your password manager.

How to use the password generator

  1. Pick a mode. 🔑 Password gives you random characters for a password manager; 🗣️ Passphrase gives you words you can actually type from memory.
  2. Drag the length slider (4–128) or the word-count slider, and switch the character classes on and off. The result regenerates instantly on every change.
  3. Turn on Avoid look-alike characters if the password will ever be read off a screen and typed by hand, and paste a custom symbol set if a site rejects certain punctuation.
  4. Check the strength row: entropy in bits, a grade from 🔴 weak to 🟣 very strong, and the estimated time to crack under the attack scenario you select.
  5. Press Copy and paste it straight into your password manager, or press Generate 10 to get a batch for a list of service accounts.

How the strength number is calculated

Entropy measures how many equally likely passwords the generator could have produced, expressed as a power of two. For a random password it is:

bits = length × log2(size of the character set)

A 16-character password from lowercase, uppercase, digits and the 25 default symbols draws from a set of 87 characters, so it is 16 × log2(87) ≈ 103 bits. A passphrase is counted the same way, with the word list in place of the character set:

bits = words × log2(2048) = words × 11

The word list holds exactly 2,048 short, easy-to-spell English words, which makes every word worth precisely 11 bits — no rounding, no hand-waving.

Choice Set size Bits per unit 🔴 → 🟣
Digits only 10 3.32 needs 30+ characters
Lowercase only 26 4.70 needs 22+ characters
Letters + digits 62 5.95 17 characters ≈ 101 bits
All four classes 87 6.44 16 characters ≈ 103 bits
Passphrase words 2,048 11.00 9 words ≈ 99 bits

Grades are fixed thresholds: under 45 bits is 🔴 weak, 45–64 is 🟡 fair, 65–99 is 🟢 strong, and 100 or more is 🟣 very strong.

Worked examples

A 12-character letters-and-digits password. The set is 62 characters, so entropy is 12 × 5.954 = 71.4 bits — 🟢 strong. Against an offline attacker running 100 billion guesses per second on a fast hash, half the keyspace is 2^70.4 ≈ 1.6 × 10^21 guesses, which takes roughly 500 years. Against a well-funded attacker at 100 trillion per second it falls to about six months. That is the gap between “fine for a forum” and “not fine for your email”.

A six-word passphrase. harbor-cactus-ribbon-melon-quartz-drift is 6 × 11 = 66 bits — just into 🟢 strong. It is 38 characters long, but you only have to remember six things. Add a seventh word and you are at 77 bits.

Eight lowercase letters. qwtzibpr looks random, and it is, but 8 × 4.7 = 37.6 bits is 🔴 weak: a GPU rig grinds through it in well under a minute. Randomness does not rescue a short password.

No repeats, 10 characters, lowercase. Instead of 10 × log2(26) = 47 bits, the tool computes log2(26) + log2(25) + … + log2(17) = 44.9 bits. Banning repeats cost you two bits.

Reading the time-to-crack estimate

The estimate assumes the worst realistic case: the attacker has stolen the password database, knows exactly which generator and settings you used, and only has to search half the keyspace on average. Guess rates are deliberately round numbers — 10 per second for a rate-limited login form, 100 billion per second for a GPU cluster against a fast hash like SHA-256, 10 thousand per second against a properly salted slow hash such as bcrypt or Argon2.

Treat the output as an order of magnitude, not a promise. It also cannot see the thing that actually breaks most accounts: reuse. A 🟣 very strong password that you also used on a site that got breached is cracked in zero seconds, because nobody has to guess it.

Tips and common mistakes

  • Length first. Adding one character to an 87-symbol password adds 6.4 bits. Swapping a letter for a symbol adds nothing on its own.
  • Do not “personalise” the output. Changing k7Qm to k7Qm2019 because 2019 is memorable destroys the randomness argument entirely.
  • One password per site, always. This is the single change that matters most, and it only works with a password manager.
  • Look-alike filtering is for humans, not attackers. It shrinks the set slightly (87 → 82 characters), so it costs a fraction of a bit per character. Use it only when the password gets typed by hand.
  • Beware of silent truncation. Some legacy systems cut passwords at 16 or 20 characters without telling you. If a long password mysteriously fails, try a shorter one.
  • Passphrase separators are not secret. The attacker is assumed to know you used dashes. That is why the separator adds no bits in our maths.

Glossary

  • Entropy – the log base 2 of the number of equally likely outcomes; one extra bit doubles the attacker’s work.
  • Rejection sampling – discarding random bytes that fall outside a whole number of ranges, so that byte % 26 does not favour the first few letters.
  • CSPRNG – a cryptographically secure random generator; in the browser that is crypto.getRandomValues.
  • Keyspace – the full set of passwords a given configuration can produce.

Privacy

Every password and passphrase on this page is generated inside your browser tab by JavaScript that is already loaded, using the built-in crypto.getRandomValues. Nothing is sent over the network, no analytics event carries the value, nothing is written to local storage or a cookie, and there is no server-side component that could keep a copy. Regenerating replaces the value in memory; closing the tab discards it. If you want to be certain, open your browser’s network panel and watch it stay silent while you click Generate.

Frequently asked questions

How long should my password be?

For an account protected by a password manager, 16 to 24 random characters from all four classes is comfortably beyond any realistic attack. For something you have to type from memory, use a passphrase of six or more words instead. Length buys far more safety than exotic symbols.

Are these passwords really random?

They come from crypto.getRandomValues, the browser's cryptographically secure random number generator, and each character is chosen with rejection sampling so no character is even slightly more likely than another. Math.random, which many generators still use, is not safe for this.

Is a passphrase weaker than a password?

Not if it is long enough. Each word from the 2,048-word list is worth exactly 11 bits, so six words give 66 bits and eight words give 88 bits. The attacker is assumed to know the word list and the format, which is the honest way to count.

Why do you not force at least one digit and one symbol?

Forcing a class shrinks the set of possible passwords, so the entropy figure shown would no longer be true. With 20 characters drawn from all four classes, the chance of getting no digit at all is under one in a thousand — just press Generate again if a site rejects the result.

Should I turn on "no repeated characters"?

Only if a system demands it. Banning repeats actually lowers entropy, because each pick has fewer options than the one before. The tool switches to the permutation formula so the bits shown stay accurate.

Do you store or log the passwords I generate?

No. They are created inside your browser tab, never transmitted, never written to storage, and discarded the moment you regenerate or close the page. There is no server that could log them.

Related tools

Last reviewed: