Password Generator
Random passwords or memorable passphrases, generated on your device using the browser's cryptographic randomness. The strength estimate shows what you are actually getting.
More tools
More tools in this category are in development and ship every week. Each one runs in your browser the same way this one does.
How to use the password generator
- Pick a type. A random password gives maximum strength per character. A passphrase is longer but far easier to type and remember.
- Adjust the settings. A new password is generated each time you change one, so what you see always matches the controls.
- Check the strength. The meter shows entropy in bits and an estimated time to crack, based on a deliberately pessimistic attack rate.
- Copy it and store it somewhere safe — ideally a password manager.
Nothing is uploaded. Everything is generated on your device.
When you would need this
Creating an account. The password you invent will be weaker and more predictable than a generated one, however clever the substitutions.
Replacing a reused password. Reuse is the single biggest practical risk in personal security — one breach exposes every account sharing that password.
After a breach notification. If a service you use has been compromised, that password should be replaced everywhere it appeared.
Generating a WiFi password. A passphrase works well here: it is long, strong, and readable aloud to a guest.
Creating an API key or token. Long random strings are exactly what these need, and the symbol set can be turned off where a system only accepts alphanumerics.
Why length beats complexity
The familiar advice — mix uppercase, numbers and symbols — is not wrong, but it is far less important than it sounds, and it has done real damage by making passwords hard for people and barely harder for machines.
The arithmetic is straightforward. Password strength is the size of the character pool raised to the power of the length. Adding character types grows the pool: lowercase alone is 26, adding uppercase makes 52, adding digits 62, adding symbols about 89. But adding length grows the exponent, and an exponent beats a base every time.
An eight-character password using all four types has about 52 bits of entropy. A twelve-character password using only lowercase letters has about 56 — stronger, despite looking far simpler, and vastly easier to type. Extend the lowercase one to sixteen characters and it reaches 75 bits, comfortably beyond what the complex short one achieves.
There is a second problem with complexity rules: they push people toward predictable patterns. Told to add a capital and a number, most people capitalise the first letter and append a 1, or substitute 3 for e and @ for a. Password-cracking software has applied those transformations by default for twenty years, so they add almost nothing while making the password unpleasant to use.
This is why modern guidance — including NIST's — recommends long passwords or passphrases and discourages mandatory complexity rules. The generator here defaults to twenty characters for exactly that reason.
Tips for using passwords well
Use a password manager. A generated password is only useful if you do not have to remember it, and a manager removes the reason people reuse passwords in the first place. It also generates locally and stores encrypted, which is a better arrangement than any web page for your most critical credentials.
Never reuse a password. A strong password used in three places fails in all three the moment any one service is breached. Uniqueness matters more than strength: a merely decent unique password is safer than an excellent shared one.
Choose a passphrase for anything you have to type. WiFi keys, device unlock codes, and the master password for your manager all get typed by hand regularly. Six or more random words is strong and far less painful than twenty random characters.
Turn on two-factor authentication. It protects the account even if the password is compromised, and it matters more than the marginal difference between a good password and a great one.
Do not rotate passwords on a schedule. Forced periodic changes push people toward small predictable increments — Summer2024, then Summer2025. Change a password when there is a reason to: a breach, a shared device, a suspicion.
Limits and requirements
The strength estimate is a model, not a guarantee. It assumes an offline attack against a stolen database at 100 billion guesses per second, which is a reasonable figure for a fast hash on commodity hardware. A service using a properly slow algorithm makes attacks far harder; a service storing passwords badly makes them easier. The estimate also assumes the attacker knows your generator settings, which is the correct pessimistic assumption.
Entropy is an upper bound. Requiring one character from every selected type slightly constrains the output and reduces true entropy by a fraction of a bit. It is small enough to ignore at realistic lengths, but the displayed figure is the ideal rather than an exact measure.
Some sites reject symbols or cap length. Turn off the symbol set or reduce the length to fit. A site that caps passwords at 12 characters is telling you something about how it stores them.
No history is kept. Generated passwords exist only in the tab. Copy before navigating away — there is no way to recover one afterwards.
Requires a secure context. Both the cryptographic random number generator and the clipboard require HTTPS, which this site always uses.
Privacy: how this tool handles your passwords
Passwords are generated in your browser, on your device, using the operating system's cryptographic randomness by way of the Web Crypto API. Nothing is transmitted, logged, or stored. There is no server involvement at any point.
This is the category where it matters most. A password generated on someone else's server is a password that someone else has seen, and a password that appeared in a request body is a password that may sit in a web server log, an error-tracking service, or a backup for months. The site need not be malicious for this to be true — ordinary, well-intentioned infrastructure logs requests.
You do not have to take this on trust. Open your browser's developer tools, switch to the Network tab, and generate a few passwords: nothing is sent. For a stronger demonstration, load this page, disconnect from the internet entirely, and keep generating. It works, because there is nowhere else for the work to happen.
That said, apply the general principle here too: for the credentials protecting your email, your bank and your password manager itself, a dedicated password manager that generates locally and stores encrypted is the better tool. This generator is for everything else.
Frequently asked questions
Is it safe to generate a password on a website?
It depends entirely on whether generation happens on your device or on a server, and most sites do not say. Here it is local: the password is produced in your browser by JavaScript running on your machine, and nothing is transmitted. You can confirm this by opening your browser's developer tools, switching to the Network tab, and generating — no request carries the password. You can also disconnect from the internet and keep generating, which is only possible because nothing leaves the device.
What makes this randomness different from an ordinary random number?
It comes from crypto.getRandomValues, which draws from the operating system's entropy pool, rather than Math.random, which is a fast pseudo-random generator whose internal state can be reconstructed from enough observed output. Selection is also unbiased: the obvious approach of taking a random number modulo the character-set size makes early characters slightly more likely, so this rejects and redraws instead of folding the uneven remainder in.
How long should my password be?
Sixteen characters or more for anything that matters, and longer where a site allows it. Length contributes far more strength than character variety — a 20-character lowercase-only password is stronger than a 10-character one using every symbol on the keyboard. The strength meter shows entropy in bits, which is the honest measure: aim for 70 or more for important accounts.
Is a passphrase as strong as a random password?
It can be, if it has enough words. Each word here contributes about eleven bits of entropy, so a six-word passphrase is roughly 66 bits — comparable to an eleven-character random password and far easier to type on a phone or read aloud. Its strength comes entirely from the words being chosen randomly. A phrase you invent yourself is nowhere near as strong, because human word choice is highly predictable.
What does 'entropy in bits' actually mean?
It is the log base two of the number of possible passwords the settings could produce — so each extra bit doubles the search space. Twenty bits means about a million possibilities, 40 bits about a trillion, 70 bits more than a billion trillion. It measures the generator's unpredictability, not the password's appearance, which is why a random 12-character password beats a clever-looking one built by substituting characters in a dictionary word.
Should I exclude look-alike characters?
Only when the password will be read aloud, retyped by hand, or written down — the point is to stop 0 being mistaken for O, or 1 for l. It costs a little entropy by shrinking the character pool, which the strength meter reflects. If the password is going straight into a password manager and never typed manually, leave them in.
Why is the trailing digit not counted in the entropy?
Because it is in a known position and drawn from only ten options, and an attacker targeting passphrases would try appending digits as a matter of course. It exists to satisfy sites whose rules demand a number, not to add real strength. Counting it would overstate the password by a little over three bits, and overstating security is worse than understating it.
Do you store or log the passwords you generate?
No, and there is nothing to store — they are never sent anywhere. They exist only in your browser tab until you copy them, and refreshing the page discards them permanently. There is no account, no history and no server-side record, because the server has no involvement in generating them.