PassBench Guide

How to make a strong password, see how long it takes to crack and check whether it has leaked

PassBench creates random passwords and passphrases, rates any password the way an attacker would guess it, shows how long cracking would take and checks it against hundreds of millions of leaked passwords. Everything is worked out in your browser: the password is never sent, saved or put into a link.

By the fof.lol team · Updated · 7 min read

Open PassBench

What makes a password strong

A password is strong when an attacker would need a huge number of guesses to hit it. Attackers do not try every combination in order: they start with leaked passwords, dictionary words, names, dates and keyboard rows, and add the usual tricks such as a capital first letter, @ instead of a and a year at the end. So P@ssw0rd2024 looks complex but falls almost at once.

What really counts is how many equally likely options the password was picked from. It is measured in bits: every extra bit doubles the number of guesses. A password made by a random generator gets all its strength from length and the size of the alphabet; a password you made up yourself is usually far weaker than its length suggests.

  • Length beats complexity. Each extra random character adds about 6.5 bits; swapping a letter for a symbol adds almost nothing.
  • Randomness beats cleverness. Patterns that feel personal (a pet’s name, a birthday, a favourite team) are exactly what guessing tools try first.
  • One password, one account. When one site leaks, attackers try the same e-mail and password everywhere else.

How to generate a password or passphrase

Open PassBench: a new password is ready at once. Choose what you need at the top of the Generator:

  • Password: 8 to 64 characters (20 by default) from lowercase and uppercase letters, digits and symbols. Turn kinds of characters on or off to match a site’s rules; every kind you keep appears at least once. Avoid look-alike characters leaves out I l 1 O 0 o, handy when a password has to be read aloud or typed from paper. The symbols are !#$%&()*+,-./:;<=>?@[]^_{}~: no quotes, backslash or backtick, which break some forms and command lines.
  • Passphrase: 3 to 10 random words (6 by default) from the EFF word list of 7,776 English words, joined with -, ., _ or a space. You can capitalise each word and add a digit to one of them for sites that demand it. Six words give about 77 bits: as strong as a 12-character random password and far easier to remember and type on a phone.

Digits and symbols are shown in colour so you can tell 0 from O. Press Copy and paste the password into your password manager, New one for another, or Check it to see it rated. Your settings are remembered in this browser; the passwords are not.

Every character and word is picked with the browser’s cryptographic generator, crypto.getRandomValues. A common mistake is to take a random number and use the remainder of division by the alphabet size, which makes some characters slightly more likely. PassBench throws such numbers away and draws again (rejection sampling), so every option is exactly equally likely and the strength shown is exact.

WhatRandomnessRating
8 characters, all kindsabout 51 bitsStrong
12 characters, all kindsabout 77 bitsVery strong
20 characters, all kindsabout 129 bitsVery strong
4 wordsabout 52 bitsStrong
6 wordsabout 77 bitsVery strong

How the strength check works

Type or paste a password into Check a password. The eye button shows or hides it, the cross clears the field. The rating appears as you type:

  • Estimated strength: how many guesses a smart attacker would need, in bits. It comes from zxcvbn, an open-source library by Dropbox that knows the most common passwords, English words, names and surnames, keyboard patterns, sequences, repeats, dates and the usual substitutions.
  • Character-set maximum: the strength the password would have if every character were random. It is an upper bound: the closer the two numbers, the more random the password.
  • Length and kinds of characters, and tips: what makes it weak and what to change.

The rating has five levels, the same for the generator and the checker:

LevelGuesses neededBits
Very weakfewer than a millionunder 20
Weakup to 10 billion20–33
Fairup to 101533–50
Strongup to 102050–66
Very strong1020 and more66 and more

When you check a password made by the generator, PassBench knows its randomness exactly and uses that instead of an estimate. The dictionary check (about 400 KB) is downloaded the first time you use the field; until it arrives, and if it cannot be loaded, the rating counts every character as random and says so.

Reading the time to crack

How fast an attacker can guess depends on where they guess. PassBench shows the average time, half of all the guesses, for four cases:

  • Offline, fast hash, 10 billion guesses a second: a site was hacked and stored passwords with a fast hash such as MD5 or SHA-1, and the attacker has a rig of graphics cards. This is the headline figure, because you cannot know how a site stores your password.
  • Offline, slow hash, 10,000 a second: the leaked database used bcrypt, scrypt or Argon2, made to be slow on purpose.
  • Online, no limit, 10 a second: guessing on a login page that does not slow attackers down.
  • Online, rate-limited, 100 an hour: what most sites and phones allow before they block or slow down.

For anything that matters, aim for Very strong: in the first case it holds for centuries, while Strong means anywhere from a day to centuries. A short PIN can be fine where only a few tries are allowed, such as a phone’s lock screen, but never for an account that can be attacked offline.

Checking for leaks without giving the password away

A strong password that has leaked is a weak password: leaked lists are the first thing attackers try. Press Check for leaks to compare yours with the database of the Have I Been Pwned service by Troy Hunt, which holds hundreds of millions of passwords from real breaches. The check runs only when you press the button, and it never sends the password:

  1. Your browser turns the password into a SHA-1 hash, 40 characters long.
  2. Only the first 5 characters are sent to api.pwnedpasswords.com. About a million different passwords share each such prefix, so the service cannot tell which one is yours.
  3. The service answers with the rest of every leaked hash that starts the same way, usually around a thousand, padded with fake entries so even the size of the answer says nothing.
  4. Your browser looks for the rest of your hash in that list itself. The service never learns whether there was a match. No cookies or referrer are sent.

This method is called k-anonymity. PassBench shows exactly what was sent, for example 5BAA6. If the password is found, it says how many times it appeared in breaches: stop using it everywhere. If it is not found, that is good news, but only together with a strong rating.

Good password habits

  • Use a password manager. It remembers a different random password for every site, fills it in and warns you about leaks. Then you only need to remember one strong passphrase.
  • Turn on two-step verification for e-mail, banking and social networks: an authenticator app or a security key protects you even when a password leaks.
  • Change a password when it leaks, not on a timer: regular forced changes make people pick weaker, predictable passwords.
  • Protect your e-mail best of all: whoever controls it can reset every other password.

Privacy

A password tool must not become a leak itself, so PassBench keeps the password inside the page:

  • It is never sent to fof.lol or anyone else, never written to the browser’s storage, the address bar, the page title or a log, and it is not part of the visit statistics.
  • The field has autofill turned off, spell-checking off (some spell checkers send text to a server) and is hidden again when you switch away from the page; it is cleared when you leave.
  • Sharing the result shares the rating only: the level, the strength rounded to 5 bits, the times to crack and whether it was found in leaks. Not the password, its length, its characters or the exact number of leaks, which could point to a well-known password. The same goes for the saved history, the PNG card, text and JSON.
  • The only things downloaded are the zxcvbn library from cdnjs (checked with Subresource Integrity, so a changed file would be refused) and the word list from fof.lol. The only thing sent is the 5-character hash prefix of the leak check, and only when you press its button.

Copying puts the password on the clipboard, where other apps and clipboard history can see it. Paste it where it belongs straight away.

Limitations

  • Any rating is an estimate. zxcvbn knows English words and common passwords well; a Ukrainian word in Latin letters or a phrase from a song may look stronger to it than it is to an attacker who knows you.
  • Very long passwords: only the first 100 characters are analysed in detail; the rest are counted as random. Such passwords are strong anyway.
  • Passphrase words are English, so they can be typed on any keyboard and in any system. The strength of a passphrase does not depend on knowing English: the attacker is assumed to know the whole list.
  • The leak check needs a connection and a secure (HTTPS) page and only knows breaches that have been published. A password that is “not found” may still be known to someone.

Frequently asked questions

Is it safe to type my real password here?

PassBench is built so that it is: the password stays in the page and the leak check sends only 5 characters of its hash. You can check this in the browser’s developer tools. If you still prefer, check a password that is merely similar to yours.

How long should a password be?

At least 12 random characters, or 16 and more for e-mail, banking and the password manager itself. For a passphrase, 5 to 6 random words.

Is a passphrase really as strong as a random password?

Yes, if the words are picked at random by a generator. Each word from the 7,776-word list adds 12.9 bits, so 6 words are about as strong as 12 random characters. A phrase you make up yourself, such as a quote, is much weaker.

Why does my password with symbols score so low?

Because the symbols are in predictable places. Summer2024! has every kind of character, yet it is a word, a year and an exclamation mark, the very first things guessing tools try.

Can someone see my password from a shared link?

No. The link contains only the rounded rating. It is not encrypted because there is nothing secret in it.

Try PassBench now

Create a strong password or passphrase and find out how long yours would last, without it ever leaving your device.

Open PassBench

Related tools