b2KIT

Password Hash Checker

Verify passwords against bcrypt, scrypt, Argon2, and PBKDF2 hash strings to confirm they match.

Tested tool guide Tested browser tools Checked August 16, 2026

What Password Hash Checker does, with a checked example

Paste a stored hash string and a candidate password, and this tool replays the algorithm - bcrypt, scrypt, Argon2, or PBKDF2 - using the salt and work parameters encoded in the hash itself, then reports whether the recomputed digest matches the stored one. A match is the only meaningful answer: hashes cannot be decrypted. The common surprise is bcrypt's 72-byte limit: only the first 72 bytes of a password are hashed, so two different long passwords can both verify against the same hash.

Worked example

A concrete input and expected output from the current implementation.

Input

Hash: $2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy  Password: password

Expected output

Match: the password verifies against the hash (bcrypt, cost 10).

This is a widely published bcrypt test vector: the digest of the string password at cost 10 with the salt encoded in the string (N9qo8uLOickgx2ZMRZoMye). The tool recomputes the digest from the candidate and finds it identical to the stored one, so it reports a match.

How the result is produced

1

How a check runs

The tool parses the hash string for the algorithm, work parameters, salt, and stored digest: bcrypt's cost, scrypt's N/r/p, Argon2's m/t/p plus version marker, PBKDF2's iteration count. It derives a digest from the candidate password with those exact parameters and compares it to the stored one. The parameters travel inside the string, so no extra configuration is needed. The salt is not secret; it exists so identical passwords hash to different strings.

2

The four algorithms

bcrypt uses the Blowfish cipher with a cost factor and reads only the first 72 bytes of a password. scrypt is memory-hard; one verification needs 128 x N x r bytes, which can freeze a browser tab at high N. Argon2, the Password Hashing Competition winner, carries a version marker plus m/t/p parameters. PBKDF2 (RFC 8018) iterates an HMAC but is not memory-hard, so it needs high iteration counts to resist GPU guessing.

Good uses

  • Confirming a password you half-remember against a leftover hash: the hash survives in an old database export, a config file, or an app you no longer control. Verify before you reset the account or migrate the records, so working credentials are not invalidated by mistake.
  • Checking a freshly configured hasher: you just picked cost or iteration settings for a library, and you hash a test password. Paste the resulting string here to prove it is well formed and verifies before it starts protecting real accounts.
  • Triage during a security exercise: in an audit, a CTF, or a breach investigation you hold a hash and a candidate from a wordlist or a dump. Confirm whether the candidate reproduces the digest before recording it as a cracked credential.

Limits and checks

  • bcrypt ignores everything past the first 72 bytes of a password. Two different long passwords that share those first 72 bytes both verify against the same hash, so a match does not prove you typed the exact original password. For the other three algorithms this limit does not exist.
  • A match is not a strength rating. A hash with weak parameters - bcrypt cost 4, a low PBKDF2 iteration count - still verifies as a match. The tool answers whether the candidate is the password, not whether the hash meets current recommendations. Check the parameters yourself if the hash's age or provenance matters.
  • Hash strings cannot be compared with each other. Every hash embeds a random salt, so the same password hashed twice yields two different strings, and the strings alone give no way to tell they came from one password. Always verify a password against a hash; the tool cannot say whether two hashes match each other.

Common questions

Is my hash or password sent to a server when I check it?

No. The check runs entirely in your browser on this page; the hash string and the candidate password never leave your machine. That is what makes it practical to test a real hash from a production database here - though any real password you type should still be treated as sensitive.

Can the tool tell me the original password from a hash?

No, and no tool can. Hashing is one-way: the digest cannot be reversed into the password. The only route from a hash back to a password is guessing candidates and verifying each one, which is exactly what this tool automates for a single candidate. A strong, randomly generated password simply cannot be recovered that way.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools