Long random passwords, generated in your browser. No network, no logs, nothing uploaded.
Press Space for a new password, C to copy. Generated with crypto.getRandomValues on your own device — this page loads nothing from the network.
Every password comes from crypto.getRandomValues, the browser's cryptographically secure random source. It is not Math.random, which is fast but predictable and must never be used for secrets. Characters are drawn by rejection sampling: taking a raw random number modulo the alphabet size would quietly make the earliest characters more likely, so out-of-range draws are discarded and retried instead.
One character from each category you enable is placed first, then the whole string is shuffled, so the guarantee never shows up as a predictable position. The strength readout is entropy in bits — the length multiplied by the base-2 logarithm of the pool size. Each additional bit doubles the number of candidates an attacker has to work through.
The crack time assumes the worst realistic case: an attacker who has stolen the password database and runs an offline attack at 100 billion guesses per second, against a fast hash. It reports the average, which is half the keyspace. Nothing leaves your device — the page loads no external scripts, fonts or images, makes no network requests, and stores nothing. Closing the tab is enough to destroy the password.
For anything that matters, 16 random characters or more. With all four categories enabled that is around 104 bits of entropy, far beyond what offline cracking can reach today or in any foreseeable future. Short passwords fail because entropy grows with length, so every character you drop halves the attacker's work several times over.
No. Length buys far more security than symbol variety does. Twenty characters of lowercase letters and digits are stronger than twelve characters using every category. Turn symbols on when the site accepts them, and turn them off without worry when some legacy system rejects them — just add a few characters to compensate.
No. Generation happens entirely inside your browser. This page has no server component, no analytics, and makes no network requests at all after it loads. There is nowhere for a password to go, which you can verify yourself in your browser's network inspector.
Yes. crypto.getRandomValues is the Web Crypto standard's cryptographically secure pseudorandom generator, seeded by your operating system's entropy pool. It is the same class of primitive used to generate encryption keys, and it is designed so that seeing past output tells an attacker nothing about future output.
It is the base-2 logarithm of how many equally likely passwords the generator could have produced. Sixty bits means roughly a quintillion candidates. Because the scale is logarithmic, the jump from 60 to 80 bits is not a third stronger — it is about a million times stronger.
It removes characters that are easy to confuse when read or written by hand: capital I, lowercase l, the digit 1, the pipe, capital O, the digit 0, lowercase o, and quote marks. Use it for passwords you will type from paper or dictate aloud. It shrinks the character pool, so entropy per character drops slightly — the readout already accounts for that.
No. Random passwords are meant to be stored, not remembered. Put them in a password manager and memorise only the manager's master password, which is the one place a long passphrase you can actually recall makes sense.
Yes — used that way it is an online key generator as much as a password generator. The output is just a random string, so it serves as an API key, a database or session token, a Wi-Fi passphrase, or a salt. For anything only machines will read, push the length to 32 characters or more; nobody types those by hand, so there is no reason to keep them short. If a system accepts only certain characters, switch off the categories it rejects.
It is free, with no account and no usage limits. There is no paid tier and nothing to sign up for. The page carries no ad network, no third-party scripts and no tracking of any kind.