This page's code did not start.

Opening index.html directly from a folder blocks JavaScript modules, so nothing will happen when you choose a length. Serve the folder over http instead:

powershell -ExecutionPolicy Bypass -File serve.ps1

Then open http://localhost:8080/.

Password & passphrase — a strong random one, made in your browser

Made here, by your own browser, and never sent anywhere. Nothing is stored and there is no history.

Language: English
View source
Your passwords and passphrases are processed in your browser. No processing upload.

Every character comes from crypto.getRandomValues, the browser's own cryptographic generator, and every word from a list that ships in this folder as src/wordlist.js. There is no fetch, no XMLHttpRequest and no sendBeacon anywhere in src/, so there is no code path by which a password made here could reach us or anybody else — and nothing is written to storage either, so reloading this page destroys every password it has ever shown you.

Live check: checking…

Offline: checking…

Don't take our word for it: open DevTools, watch the Network tab, and press Make another as many times as you like. Not one request carries a character of the result. Or unplug from the internet and go on generating.

1 Pick what to make

A password is a run of characters — short, strong, and something you will keep in a password manager. A passphrase is words picked at random from a list — longer to type, far easier to remember and to read aloud, and the right answer for the handful of secrets you have to type from memory: the password manager's own, your laptop's, your phone's backup code.

2 Set it up

Length Length beats everything else. Adding one character to a ninety-four-character alphabet is worth more than any rule about which characters have to appear in it.

Which symbols These ones: . The space, the two quotes, the backtick and the backslash are left out of both sets on purpose — they are as random as anything else and they are what turns a working password into a support ticket.

At least one character from each set For the sign-up form that insists. It makes the password weaker, not stronger, because it rules out some of the passwords that were previously possible — the reading below already has that subtracted.

No look-alike characters Drops I l 1 | and O 0, for a password that has to be read off a screen and typed somewhere else. Add a character or two of length to pay for it.

Words Four words is the well-known picture and is below what is worth using today. Six is the sensible floor for anything that matters, and seven for the password that guards all the others.

Word list The long list is five dice throws a word, so 12.9 bits each. The short list is four throws, 10.3 bits each, and every word in it is five letters or fewer with no word the beginning of another — which is what to use for a passphrase you will be typing on a television remote or reading down a phone screen.

Between the words A random digit is the only one of these that adds anything, because it is a fresh choice at every join rather than a rule. The others are about what the box you are pasting into will accept — a space is the most readable and the most likely to be mangled.

Capitals None of these three adds any strength: which one is in force is a rule anybody can read off this page, so it is not something an attacker has to guess. It is here for the form that demands a capital.

End it with a symbol For the same insistent form. The digit is a real choice and is worth 3.3 bits; the symbol is drawn from eight and is worth 3.

Characters to draw from

3 Take it

Or make several at once A downloaded list is a plain text file written by this page from what is already on your screen. It is saved by your browser, to your own disk, and nothing sends it anywhere — but a file full of passwords on disk is a file full of passwords on disk. Move them into a password manager and delete it.

— bits of entropy

An attacker would have to work through — possibilities to be sure of finding it.

What that estimate assumes

That the attacker has stolen the file your password is stored in and is guessing against it on their own hardware at a hundred billion guesses a second — roughly a rack of graphics cards against a fast hash, of the kind that keeps turning up in breaches. Against a password hash chosen properly, bcrypt or Argon2, the same hardware manages a few thousand a second and every answer above becomes about twenty-five bits harder. Against a login form that answers ten times a second, all of them are unreachable.

The figure is deliberately the pessimistic one, and it is the number of guesses to be certain; the average attack finds the answer in half of them, which is what the estimate above uses.

Nothing here is remembered

What this page makes is never stored, never listed, and never sent. There is no history to clear because none is kept: reload the page and every password it has ever shown you is gone, including from this page's own memory. The only copies are the ones you make — the clipboard, and the text file if you asked for one.

View as Markdown

How to make a strong password without a website seeing it

  1. Choose a password or a passphrase. A password is a run of random characters: short to store, awkward to type, and exactly right for the hundreds of accounts your password manager fills in for you. A passphrase is words drawn at random from a list: longer, but rememberable and sayable, which is what you need for the few secrets you have to type from memory — the password manager's own, your laptop's, your phone's recovery code.
  2. Set the length, or the number of words. This is the setting that matters and the others mostly are not. Twenty characters, or six words, is a sensible floor for anything worth protecting; go up from there for the account that would let somebody reset all the others. The reading underneath moves as you drag, so you can see what each extra character buys.
  3. Turn on the rules the form is going to insist on. “At least one of each”, a digit on the end, a symbol from the short list every site accepts. None of these makes anything stronger — the first one makes it very slightly weaker, and the page has already subtracted that — but they are how you get past a sign-up form without generating six in a row.
  4. Read the number, not the colour. The bits are counted from the settings that produced the string: the size of the alphabet, the number of draws, and nothing else. That is a real measurement, unlike the meter on a sign-up page, which can only score the characters in front of it and has no way of knowing whether you chose them or a generator did.
  5. Copy it, and put it somewhere, before you leave. There is no history here and no way to ask for it back; reloading the page destroys it. Paste it into the password manager first and into the sign-up form second, so that the one that has to remember it has it before anything can go wrong.
  6. Take a batch if you need one. The slider at the bottom makes up to a hundred at once and will save them as a plain text file, written by this page from what is already on your screen. Useful for seeding accounts or handing out starter credentials, and worth deleting the moment they are somewhere better: a file full of passwords on your disk is still a file full of passwords.

The longer version

Is it safe to use an online password generator? The right suspicion, examined: where a browser's randomness comes from, what a generator page could do wrong, and the checks that tell you whether the one in front of you can keep what it made.

Questions

Are the passwords sent anywhere, or stored?

Generated passwords are made in this browser and the tool’s code does not upload them or write a password history. Copying or saving is your choice. The shared page frame can retain local preferences and temporary language-switch settings, but the generated secret output is not included. CSP limits permitted destinations; it does not itself prove what an allowed request contains. Read the code and inspect the operation’s traffic.

Where does the randomness come from?

crypto.getRandomValues, the generator browsers provide for cryptographic use, seeded and reseeded by your operating system's own entropy pool. It is the same source a browser uses for TLS key material. Math.random is not used anywhere in this tool, and that distinction is not pedantry: Math.random is a fast arithmetic generator whose entire internal state can be reconstructed from a few consecutive outputs, so a password generator built on it produces passwords that look random and can be enumerated by anybody who has seen one of them.

Is a password made in a browser as good as one from a desktop program?

For the randomness, yes — it is the same operating-system source either way, reached through a different door. What differs is what else is in the room. A browser tab runs alongside your extensions, and an extension with permission to read pages can read this one. That is true of every web-based generator including this one, and it is the honest reason to use your password manager's built-in generator when you have one: it is the same arithmetic, in a process with less standing beside it. This page is for when you do not have one to hand.

Password or passphrase — which should I actually use?

A password for everything a password manager types for you, because you will never look at it and length is free. A passphrase for the few things you have to type from memory or read aloud: the password manager's master password, a disk encryption key, a device you set up by remote control. Six words from the long list is 77 bits, which is stronger than a twelve-character random password and enormously easier to get right at four in the morning.

How long should a password be?

Twenty characters over the full alphabet is about 130 bits and is past the point where length stops being the thing to worry about. Sixteen is fine. Twelve is the floor for anything you would mind losing, and it is the floor rather than the target. Below that you are relying on the site having stored it properly, which is a bet the last twenty years of breach notifications suggest you should not take. Length beats every other setting on the page; adding one character is worth more than any rule about which characters have to appear.

How many words should a passphrase have?

Six from the long list, and seven if it guards other passwords. The famous four-word picture was drawn in 2011, is 51 bits, and is within reach of a serious offline attack today. Five is 64. Six is 77, which is past anything an attacker will spend on one ordinary account. Every extra word from the long list adds 12.9 bits, and the words are the only part that adds anything — the hyphens and the capitals do not.

What is a “bit”, and why does this page count them?

A bit is a doubling. Sixty bits means there were 2^60 equally likely results this page could have produced, so an attacker who knows exactly how it works still has that many to try. It is a property of the process, not of the string: the page can quote it exactly because it is the thing that did the choosing and knows how many choices it made. That is the difference between this and the coloured bar on a sign-up form, which reads the characters and guesses. On that bar, correct horse battery staple scores badly and is worth 44 bits, and P@ssw0rd! scores well and is worth almost nothing.

Why does “must contain a symbol” make a password weaker?

Because a rule can only ever remove possibilities. Requiring at least one character from every set rules out every password that happened not to have one, and a smaller set of possible passwords is a smaller number to search. The effect is small — about half a bit at a typical length — and it is real, and this page subtracts it rather than quoting the flattering figure. It is worked out exactly, by counting the passwords the rule actually allows rather than the ones it does not.

Which wordlist is this, and does it matter that an attacker can download it?

It is the Electronic Frontier Foundation's diceware lists, bundled unchanged: 7,776 words for the long one and 1,296 for the short. They were built for exactly this — nothing offensive, no homophones, no pairs that run together into a third word, and in the short list no word that is the beginning of another. And no, it does not matter that the list is public: the strength quoted here assumes an attacker has it, is looking at this page's source, and knows every setting you used. The only thing they do not know is which of the 7,776 came up each time. That assumption is what makes the number trustworthy.

Is a passphrase not just a dictionary attack waiting to happen?

Not when the words are chosen this way. A dictionary attack works against phrases people pick, because people pick words that go together, in an order that makes sense, out of the few thousand they use every day. This page picks each word independently, uniformly, from a fixed list, with no regard for whether the result reads well — which is why it usually does not. An attacker who knows the list and the length still faces 7,776 to the power of the number of words.

Can I get a password back after I have left the page?

No, and that is deliberate. Nothing is written down anywhere, so there is nothing to recover: no history panel, no “recently generated” list, no cache. A generator that could show you last Tuesday's password would be a generator that had stored it, and stored where you could reach it means stored where something else could. Copy it into a password manager before you navigate away.

Is copying it to the clipboard safe?

It is the ordinary risk, and it is worth knowing rather than worrying about. The clipboard is shared with everything else running as you, it usually survives until the next copy, and on some setups it syncs between devices. That is a good reason to paste it where it belongs immediately and copy something else afterwards, and not a reason to type a weaker password by hand instead. This page cannot read your clipboard; it can only write to it, and only when you press the button.

Should I use the same one in more than one place?

No, and it is the one piece of advice on this page that outranks everything else on it. Almost every account taken over is taken over with a password that was correct somewhere else first: a site is breached, the list is published, and the same address and password are tried everywhere. A unique password per site turns a breach into one account instead of all of them, and it is the reason to keep a password manager — not the strength of any individual password it holds.

Is it free, and do I need an account?

It is free, there is no account, no sign-in, no trial, and no limit on how many you generate. The site carries advertising, which is what pays for it; the ads are not given anything at all about what this page makes, including how long it was or how strong.

Does it work offline?

Yes. Load the page once, then disconnect from the internet, and it keeps making passwords. The randomness comes from your own machine and the wordlist is already in the page. That is also the simplest way to prove nothing is being fetched or sent: a generator that asked a server for its numbers would stop the moment you unplugged.