Free Password Generator
Create cryptographically secure random passwords or memorable Diceware-style passphrases. Adjustable length, custom character classes, entropy meter, batch generation — all generated locally in your browser.
Settings
Generated Password
Loading…
Generating your first passwordWhat Makes a Password Strong?
A password is strong when an attacker cannot guess it — not even with unlimited attempts, once they have stolen a database of hashed passwords. The only thing that prevents that kind of offline brute-force attack is entropy: the amount of unpredictability baked into the password at creation time.
Entropy is measured in bits: log base 2 of the number of possible passwords an attacker would have to try. Every extra bit of entropy doubles the work required to crack the password. Small differences in entropy produce enormous differences in difficulty.
How entropy adds up
| Password | Pool size | Entropy |
|---|---|---|
| 8 lowercase letters | 26 | ≈ 38 bits |
| 8 letters + digits + symbols | 94 | ≈ 52 bits |
| 12 letters + digits + symbols | 94 | ≈ 79 bits |
| 16 letters + digits + symbols | 94 | ≈ 105 bits |
| 20 letters + digits + symbols | 94 | ≈ 131 bits |
| 6 Diceware words (7776 list) | 7776⁶ | ≈ 77 bits |
NIST's Digital Identity Guidelines (SP 800-63B) suggest roughly 60 bits is adequate for online accounts that rate-limit guesses, 80 bits for offline attacks, and 100+ bits for long-term protection of high-value data.
Length beats complexity
Adding character classes multiplies the pool size, but every extra class makes the password harder for you to type and remember. Increasing length multiplies entropy linearly without that cost. That's why a 20-character lowercase password (94 bits) is stronger than an 8-character password using every symbol (52 bits), while being vastly easier to type on a phone.
For most accounts, a 16-character random password is already overkill for a decade of Moore's Law. The real risk is not breaking a strong password — it is reusing one across sites, where a single breach exposes everything.
Passwords vs passphrases
| Type | Example | Strength | Best for |
|---|---|---|---|
| Random password | x7#Kq2$vLm9@pNzW | ~100 bits | Stored in a password manager |
| Passphrase | plum-anvil-motel-brisk-tape-oxide | ~77 bits | Typed by hand, master passwords |
Passphrases trade a small amount of entropy for a large amount of memorability. Words are easier for humans to remember than random characters, and — as the famous XKCD comic pointed out — a five-word passphrase is easier to remember and harder to crack than a short, "complex" password.
Why cryptography-grade randomness matters
A random password is only strong if the underlying randomness is unpredictable. JavaScript's Math.random() is not suitable for security: it uses a deterministic algorithm whose internal state can be reconstructed from a handful of outputs. Some older "password generators" built on it can be broken in seconds.
This tool uses crypto.getRandomValues() — the Web Crypto API's CSPRNG, seeded by the operating system, the same source used by browsers to generate TLS session keys. It also applies rejection sampling to eliminate modulo bias, so every character in the pool has an exactly equal chance of being selected.
Common use cases
Account Passwords
Unique passwords for every site, generated on demand.
Password Manager Master
A long passphrase you memorise and never write down.
Server Credentials
Strong root and database passwords for production systems.
API Keys & Tokens
High-entropy secrets for HMAC or bearer tokens.
Disk Encryption
A six- or seven-word passphrase for BitLocker or FileVault.
Wi-Fi Networks
A 24-character random key that no wardriver will guess.
Team Onboarding
Batch-generate initial passwords for new accounts.
Testing & Staging
Fake credentials that look realistic in test fixtures.
Privacy and security
This password generator runs entirely in your browser. All randomness comes from crypto.getRandomValues(), which is seeded by the operating system and never transmitted. Nothing is uploaded, stored or logged. There is no backend and no analytics on your input — but treat any password you generate here the same way you would treat a password written on paper, until it is safely stored in a password manager.
Frequently Asked Questions
How does this password generator work?
crypto.getRandomValues() API, which draws entropy from the operating system's cryptographically secure random number generator. Rejection sampling is used to eliminate modulo bias, so every character in the pool has exactly the same probability of being picked. This is dramatically more secure than generators that rely on Math.random().Is this password generator free?
Is my password sent to a server?
What is a cryptographically secure random number generator?
Math.random() is not a CSPRNG — its output can be predicted from a few samples. The Web Crypto API's crypto.getRandomValues() is a CSPRNG, seeded by the operating system, and is what every modern password generator and encryption library uses.How is password strength measured?
What is a passphrase and why use one?
plum-anvil-motel-brisk-tape-oxide. Because words are easier to remember than random characters, passphrases are often the better choice for a password you must type by hand, such as a master password or full-disk encryption key. Six words from a list of 7776 gives about 77 bits of entropy, which is stronger than an 11-character random password.