Password Generator

Every password below is generated on this device, using your browser's cryptographic random source (crypto.getRandomValues) with rejection sampling, so each character is uniformly likely and free of modulo bias. Nothing is uploaded, stored, or logged — close the tab and the passwords are gone. Strength is reported the honest way: as entropy in bits, not a colored bar.

Each extra character multiplies the search space by the pool size — length beats cleverness.
…
– bits
of entropy — length × log2(character pool)
  • Character pool–
  • Average crack time @ 10 billion guesses/sec*–
  • Average crack time @ 1 trillion guesses/sec*–

    * Crack times are a model, not a measurement. They assume an attacker who already has a fast, unsalted password hash and can try 1×10^10 or 10^12 guesses every second, and they show the average time (half the total space). Against a modern salted, slow hash (bcrypt, scrypt, Argon2) the same attacker is orders of magnitude slower. What the numbers are good for is comparing your choices: at 16 characters and the full 94-character pool you are at 104.9 bits, and no realistic guessing rate touches that.

    How this generator works

    Your browser hands the page random bytes from the operating system's cryptographic source — the same source your banking app relies on. PassGen turns those bytes into character indexes with rejection sampling: values that would land in the uneven tail of the range are thrown away and redrawn, so every character in the pool is exactly as likely as every other. The plainer alternative, taking a random number modulo the pool size, quietly favors the first few characters; this generator does not do that.

    With "One of each set" on, one character from each selected set is planted first and the finished password is shuffled with the same random source. Honest footnote: that guarantee trims a small amount of entropy compared with the headline figure, because an attacker who knows the rule can skip passwords missing a set. The difference is minor at sensible lengths, and the figure shown stays the plain length × log2(pool) value so you can compare like with like.

    If you need a password you will actually remember — a master password, a device login — a passphrase of random words is usually the better tool. And when you need randomness for something that is not a password at all, our sister tool RandomNum rolls dice, flips coins and draws numbers from the same kind of cryptographic source.

    Length is the whole game

    Password strength against guessing is one multiplication: every character you add multiplies the attacker's work by the size of the pool. That is why the table below — computed by this site's own engine — shows time, under the 10-billion-guesses-per-second assumption, growing from hours to ages of the universe as you go from 8 to 24 characters.

    LengthEntropy, 62 chars (a–z A–Z 0–9)Entropy, 94 chars (all printable)Avg. crack time, 62 @ 10^10/sAvg. crack time, 94 @ 10^10/s
    8 characters47.6 bits52.4 bits3.0 hours3.5 days
    10 characters59.5 bits65.5 bits1.3 years85.3 years
    12 characters71.5 bits78.7 bits5.1 thousand years754.1 thousand years
    14 characters83.4 bits91.8 bits19.6 million years6.7 billion years
    16 characters95.3 bits104.9 bits75.5 billion yearslonger than the age of the universe, many times over
    20 characters119.1 bits131.1 bitslonger than the age of the universe, many times overlonger than the age of the universe, many times over
    24 characters142.9 bits157.3 bitslonger than the age of the universe, many times overlonger than the age of the universe, many times over

    Two practical conclusions. First, a password manager removes the only real reason to keep passwords short, so let it: generate 16–20 characters and let the manager remember them. Second, unique beats strong: a 104-bit password reused on a site that leaks its database in plain text protects nothing. One generated password per account, stored in a manager, is the entire strategy.

    What this page cannot do: it cannot protect a password you reuse, type into a phishing page, or store in a notes file synced everywhere. Generate here, save into a reputable password manager, and turn on two-factor authentication for anything that matters.

    FAQ

    Are these passwords really random?

    They are drawn from crypto.getRandomValues, the browser's interface to the operating system's CSPRNG, and mapped to characters with rejection sampling so there is no modulo bias. That is the strongest randomness available to a web page.

    Do you store or see the passwords I generate?

    No. Generation happens in this tab, in JavaScript, on your device. The page has no server component and no analytics, and the passwords are never transmitted anywhere. See the privacy page for the details.

    Why show entropy instead of a strength bar?

    Because a bar hides its assumptions. Bits are checkable: 16 characters from a pool of 94 is 16 × log2(94) ≈ 104.9 bits, and you can verify that on any calculator. The entropy page walks through the math.

    How long should my passwords be?

    16 characters from the full printable set (≈105 bits) is comfortably beyond offline guessing under any stated rate. Go longer for a master password — or use a 5–6 word passphrase. More on the length guide.