Nimble Toolbox

Check password strength

Type a password or passphrase to see how secure it is: how quickly it could be guessed, which patterns in it an attacker would try first, and what the number would be if every character had been random. It is checked in this tab and never sent anywhere.

Verdict
Verdict
—
A smart guesser needs
—
Online, 100 guesses an hour
—
Leaked, hashed with bcrypt
—
Leaked, with a fast hash?
—
Found
—
Advice
—

How to use it#

  1. Type or paste the password. It stays hidden unless you tick Show the password.
  2. Read the verdict and the time it would take to guess, online and from a leaked database.
  3. Check what was found: common passwords, dictionary words, names, dates, sequences, and keyboard runs each make a password easier to guess.
  4. Compare the estimate with the figure for a random password of the same shape, which is the most it could ever be worth.

What a strength check can tell you, and what it cannot#

Nobody guesses a password by trying every combination of characters. A real attack starts with lists of leaked passwords, then dictionary words, names, and dates, then the same again with capitals added, letters swapped for look-alike symbols, and digits on the end. The estimate here works the same way. It looks for those patterns, works out how many guesses each would take to reach, and reports the total, so Summer2024! rates only as somewhat guessable, fine behind a login that limits attempts but not in a leaked database, even though it uses four kinds of character.

What it cannot know is anything about you. Your dog, your street, your team, and your child’s birthday are not in any list the checker has, but they are the first things someone who knows you would try, and a password built from them is weaker than the estimate says. It also cannot tell whether this exact password has already leaked. It checks nothing online, so a password that scores well here may still be on a list somewhere if you have used it before.

Treat a good score as a necessary condition rather than a guarantee. A bad score is reliable: if the checker found the pattern, so will an attacker.

Why the random figure is a ceiling#

The bottom row gives the entropy a password of this length and these kinds of character would have if every character had been picked at random: length times the bits each character carries. That is the right measure for a password a generator made, because the generator really did pick at random, and the password generator reports it for exactly that reason.

For a password a person chose, the same arithmetic flatters it badly. P@ssw0rd uses capitals, lowercase, digits, and symbols across eight characters, which works out to about 53 bits if random. It is also the most common password there is in a thin disguise, and the estimator finds it within a few dozen guesses. When the two numbers disagree, believe the lower one.

Reading the crack times#

Online, 100 guesses an hour is an attacker typing at a login page that slows down or locks after a few failures. Almost any password survives this for a while, which is why rate limits matter. The leaked rows assume the attacker has a copy of the password database and can guess as fast as their hardware allows. At 10,000 guesses a second the site stored passwords with a slow hash such as bcrypt, which the bcrypt generator makes; at 10 billion a second it used a fast one, or none at all.

Those rates are round numbers for comparison. A determined attacker with many graphics cards goes faster, and a well tuned bcrypt goes slower. What matters is the gap between rows: a password that lasts centuries against a slow hash may last minutes against a fast one, which is the whole case for storing passwords properly.

Frequently asked questions#

Is it safe to type my real password here?

#

The password is checked in this tab by your browser and never transmitted, not even to a breach lookup service. That said, the safest habit is not to type a password you use into any website that did not issue it. Checking a password of the same shape, or one you are about to start using, tells you just as much.

Why are there two different numbers?

#

The verdict and crack times come from a pattern estimate, which looks for the words, names, dates, and keyboard runs a real attack tries first. The random figure is what the same length and mix of characters would be worth if every character had been picked at random. For a password a generator made, the two roughly agree. For one a person chose, the pattern estimate is lower, and it is the one to trust.

How many bits of entropy does a strong password need?

#

For a password picked at random, around 60 bits takes years to exhaust even at 10 billion guesses a second, and every extra bit doubles that, so 80 puts it far out of reach. Sixteen random characters from all four kinds give about 105 bits, and five random words from a large list about 65. The bottom row works as a password entropy calculator for that case. For a password a person chose, the bits are a ceiling rather than a measure, so go by the verdict and the crack times instead.

What makes a password strong?

#

Length and randomness, far more than symbols. Five or six random words, or sixteen random characters, put a password beyond the reach of guessing. What weakens one is anything predictable: a real word with a digit on the end, a name and a year, a keyboard row, or a well known substitution like @ for a. The password generator makes either kind at random.

Does adding a symbol or a capital make a password much stronger?

#

Much less than it seems. Attackers expect a capital at the start and a digit or ! at the end, because that is where people put them, so those additions cost a guesser only a few extra tries. Adding another random word or several random characters does far more.

Does it check whether my password has been leaked?

#

No. Checking a password against a breach database means sending something derived from it to a server, and this page sends nothing. It does include a list of the most common leaked passwords and marks a match as a common password, but a password leaked from one site and not widely reused will not be on that list.

How strong is a passphrase?

#

It depends on how randomly its words were chosen. Each word is looked up on its own, whether the words are joined by spaces, hyphens, dots, underscores, or another separator, and every word the checker knows is named under Found. What a passphrase is worth comes from how many words there were to pick from: about 13 bits a word from a list of 7,776, the size of the usual dice lists, so five words is about 65 bits, and about 10 bits a word from the shorter list the password generator uses. The separator adds almost nothing, because a guesser tries the common ones. The If all random figure counts letters rather than words, so for a passphrase it runs far higher than that. A song lyric or a phrase that reads as a sentence is weaker than any count of its words, because the words were not picked independently.

What is a fast hash?

#

A hash function built to be quick, such as MD5, SHA-1, or SHA-256. Speed is what they are for when checking that a file arrived intact, and it is exactly wrong for storing passwords: a graphics card can try around 10 billion guesses a second against a leaked table of them. Password hashes such as bcrypt, scrypt, and Argon2 are made slow on purpose, and bcrypt at a normal cost allows about 10,000 guesses a second on the same hardware, a million times fewer. That gap is the difference between the two leaked rows. You cannot tell which one a site uses, so a password that only survives the slow row is relying on the site having chosen well.

How are the crack times worked out?

#

The estimate counts how many guesses a smart attack would need to reach the password, then divides by a guessing rate: 100 an hour for a rate limited login, 10,000 a second against a stolen database hashed with bcrypt, and 10 billion a second against a fast hash. The estimator is the open source zxcvbn, which runs entirely in your browser.