Strong Password Generator & Diceware Passphrase Generator
Generate CSPRNG passwords or EFF Diceware passphrases, never transmitted over the network.
Two generation modes live here: a custom character-based password, and an EFF Diceware passphrase built from a bundled long wordlist. Both draw every single random choice from window.crypto.getRandomValues rather than Math.random, using rejection sampling to avoid the bias a naive modulo would introduce — so yes, this generator's output is genuinely cryptographically secure, and the entropy figure and crack-time estimate shown beside it update live as you change the settings.
How to generate a strong password or passphrase
- Choose Custom password for a string of random characters, or EFF Diceware passphrase for a run of words from the EFF long wordlist.
- For a password, drag the length slider anywhere from 12 to 128 characters and tick the classes you need: uppercase, lowercase, numbers and symbols.
- For a passphrase, pick between 3 and 10 words and a separator — hyphen, space, dot or none.
- Check the entropy, strength band and crack-time estimate, then click Re-roll or press Space until you have one you like.
- Click Copy and paste the result straight into your password manager before you leave the page.
Password or passphrase: which should you use?
Pick random characters for every account your password manager fills in for you. You never type those, so a 20-character string with all four character classes costs you nothing and carries about 6.46 bits of entropy per character.
Pick a passphrase for the handful of secrets you have to type or remember yourself: the manager's own master password, a disk-encryption unlock, a Wi-Fi key read aloud to guests, or a login entered with a TV remote. EFF's guidance for its long wordlist is a minimum of six words, which this tool scores at about 77.5 bits.
How long should a password be? Entropy by length and word count
- Strength bands used on this page: below 28 bits very weak, 28 to under 40 weak, 40 to under 60 fair, 60 to under 90 strong, and 90 or more very strong.
- 12 characters with all four classes (an 88-symbol pool): 77.5 bits, strong — the shortest length the slider allows.
- 16 characters, all four classes: 103.4 bits, very strong. The default 20 characters: 129.2 bits.
- 16 characters of lowercase letters and numbers only, for sites that reject symbols: 82.7 bits, strong.
- 3 words: 38.8 bits, weak — about 24 seconds at the tool's assumed ten billion guesses per second.
- 4 words: 51.7 bits, fair, roughly two days. 5 words (the default): 64.6 bits, strong, around 44 years.
- 6 words: 77.5 bits, roughly 339,000 years. 7 words: 90.5 bits, the first word count rated very strong.
Rejection sampling is what keeps the output unbiased
Drawing a random index with crypto.getRandomValues() % poolSize sounds fine until the pool size doesn't evenly divide the range of the raw bytes, at which point low indices get chosen very slightly more often than high ones. The generator sidesteps that by drawing just enough crypto-strength bytes to cover the needed range, computing the largest multiple of the pool size that fits inside that byte-space, and simply re-drawing whenever the sampled value lands in the leftover sliver — so every character in the pool has exactly equal probability, not an approximately equal one.
When more than one character class is turned on, at least one character from each active class is guaranteed to appear in the result. The remaining positions are filled uniformly from the full combined pool, and the whole string is then Fisher-Yates shuffled — using the same rejection-sampled randomness — so the guaranteed characters don't end up predictably front-loaded at fixed positions.
Diceware mode is the same dice roll, done with a CSPRNG instead of your hand
Each word in a passphrase is drawn uniformly from the bundled EFF long wordlist using the identical crypto-backed rejection sampling as the character generator — mathematically equivalent to physically rolling five six-sided dice per word the way eff.org's own diceware instructions describe, just sourced from your browser's CSPRNG instead of a set of dice on your desk.
What the entropy number and crack-time estimate actually assume
Character-password entropy is length times log2 of the active pool size in bits; passphrase entropy is word count times log2(7,776), since the EFF long wordlist has exactly 7,776 entries — about 12.925 bits per word. The crack-time estimate converts that bit count into a keyspace, assumes an attacker checking half of it on average, and divides by ten billion guesses per second. That rate is closer to a GPU rig attacking a fast, unsalted hash; against a properly salted, slow hash like bcrypt a real attacker manages far fewer guesses, so the estimate deliberately errs on the pessimistic side.
That model says nothing about how the destination actually stores your password. A perfectly random, high-entropy string is still worthless if the site hashes it badly, if you reuse it somewhere already breached, or if you hand it over through a phishing page — the estimate covers brute force against the string itself, not the surrounding system.
What makes a password strong
- Length: every added character multiplies the search space by the size of the pool, so a longer password outgrows an extra symbol class quickly.
- Randomness: a machine-chosen string has no pattern for an attacker's wordlists and mangling rules to exploit, unlike anything a person invents.
- Uniqueness: one password per site means a breach somewhere else can't be replayed against your other logins.
- No predictable swaps: P@ssw0rd-style substitutions and a trailing 1! are among the first variations cracking tools try, so they add far less strength than their length suggests.
- Backup layers: store passwords in a password manager and switch on two-factor authentication wherever a site offers it.
What generating a strong string doesn't protect against
A spacebar hotkey re-rolls the output instantly, which is convenient but also means whatever was generated last stays visible and copyable on screen until you navigate away — worth remembering on a shared or public machine. And no password generator, however well-sourced its randomness, defends against clipboard-reading malware, a browser extension with page access, or typing the result into a look-alike login page.
Questions people ask about CSPRNG Password & Diceware Passphrase Studio
- Is it safe to use an online password generator?
- It is when the password is created on your own device by a cryptographic random source and never transmitted, which is how this page works. The remaining risks sit around the browser — malicious extensions, clipboard-reading malware or someone watching your screen — rather than in the generator itself.
- Are generated passwords stored or sent to a server?
- Neither. The result exists only in the page's memory: it isn't written to cookies or local storage and no network request carries it anywhere. Reloading or closing the tab discards it for good, so copy it into your password manager first.
- How long should my password be?
- For accounts your manager fills in, 16 or more random characters is a comfortable target — that is over 100 bits with all four classes on. The slider's 12-character minimum already reaches 77.5 bits, and going longer costs you nothing because you never type it.
- What's the difference between a password and a passphrase?
- A password here is a string of random characters, dense with entropy but hard to memorise. A passphrase is a sequence of random whole words; each word adds about 12.9 bits, so it needs more characters for the same strength but is much easier to remember and type.
- How many words should a passphrase have?
- EFF recommends at least six words from its long list, about 77.5 bits. The default of five gives 64.6 bits, inside this tool's strong band, but for a master password or disk encryption six or seven words is the safer choice, and every extra word adds another 12.9 bits.
- Is this password generator actually cryptographically secure, or just random-looking?
- It is genuinely cryptographically secure: every character and every diceware word is drawn from window.crypto.getRandomValues(), your browser's CSPRNG, using rejection sampling to eliminate modulo bias. Nothing in either generation path falls back to Math.random() or any other non-cryptographic source at any point.
- Why does the tool guarantee at least one symbol even at a short password length?
- When multiple character classes are enabled, one character from each is placed first so a short password can't accidentally end up missing a class entirely just by chance — a real risk at low lengths. The rest of the string is filled and the whole thing shuffled afterward, so those guaranteed characters land in random positions, not fixed ones.
- How is the crack-time estimate calculated, and is it optimistic?
- It converts the entropy bits into a keyspace, assumes an attacker needs to try half of it on average, and divides by ten billion guesses per second — a rate typical of a GPU attack on a fast hash, so it leans pessimistic. If the real system uses a slow, salted hash or rate-limits online guesses, cracking would take far longer than shown; if it stores passwords weakly or leaks them, far less.
Related tools on BrakeTools
- Enterprise Password Policy & Hash Entropy Tester — Model a corporate password policy against real-world crack-time and entropy estimates.
- Hash Lab & Identifier — Compute and identify SHA-1/256/384/512, HMAC, and MD5 hashes, verify file checksums, and test password strength.
- Random Number Generator — Generate cryptographically random integers or decimals in bulk, with a no-repeat mode.
- Bulk UUID/GUID Generator — Bulk-generate up to 10,000 RFC-compliant UUID v4 or v7 identifiers, copy or download instantly.
Content reviewed 2026-09-27.