Skip to content
TypeParser
All tools

Bcrypt Verifier

Verify bcrypt hashes locally.

beats bcrypt.online edge: Cost-factor decode + local verify
hash
password
analysis
note: full bcrypt KDF in JS would block UI for cost ≥10. This tool decodes structure and lets you copy a server-side test snippet.
Guide

About Bcrypt Verifier

Verify bcrypt hashes locally. Paste a bcrypt hash (the <code>$2a$10$...</code> kind) and a candidate password — get a match / mismatch verdict in milliseconds. The tool also decodes the cost factor (rounds) and salt structure for inspection.

What this tool does

Verifies a candidate password against a bcrypt hash. Useful when:

  • Debugging an auth issue — does the user’s password actually match the stored hash?
  • Auditing a database export — confirming you have the right hash format.
  • Testing a migration — verifying the hash survives a re-encoding.

How bcrypt verification works

Bcrypt encodes the salt and cost factor into the hash itself: $2b$12$saltsaltsalt22charsHashHashHashHashHashHas. Verification:

  1. Parse algorithm version, cost factor, salt from the stored hash.
  2. Compute bcrypt(password, salt, cost).
  3. Compare the resulting hash bytes to the stored hash.
  4. Constant-time comparison to prevent timing attacks.

Same password + same salt + same cost → same hash. The check takes ~100ms at cost 10, ~400ms at cost 12, ~1.6s at cost 14.

Common workflows

Debug a login failure. Copy the stored hash from your DB, paste the user’s password, see if they match. If yes, the bug is elsewhere; if no, the password is wrong.

Verify a hash generator. Generate a hash in your application code, paste it here with the original password. Mismatch means your generator is broken.

Inspect cost factors across a system. Old hashes may use cost 8 or 10; new hashes should use 12+. Decoding makes the distribution visible.

Why bcrypt vs Argon2 vs scrypt

AlgorithmYearUse case
MD5 / SHA-11990sNever for passwords
PBKDF22000Fine; predates GPU attacks
bcrypt1999Workhorse; still acceptable
scrypt2009Memory-hard; newer apps
Argon2id2015Current best; new systems

If you are choosing today: Argon2id. If you have bcrypt: keep it, raise the cost periodically.

Frequently asked questions

What is the cost factor?
The exponent in bcrypt's work-factor: 2^cost iterations. $10$ means 1024 rounds — about 100ms on a 2024 CPU. Higher cost is slower to verify, slower to brute-force. 12 is a sane modern target.
Why is bcrypt still recommended?
Tunable cost, well-studied, supported in every web framework. It pre-dates Argon2 (the modern winner) but remains acceptable for password storage. New systems should use Argon2id; existing bcrypt is fine to keep.
What do <code>$2a</code>, <code>$2b</code>, <code>$2y</code> mean?
Algorithm versions. 2a was the original; 2b fixed a sign-extension bug in 2014; 2y is a PHP-specific variant of 2b. All three verify similarly in modern libraries.
Can I generate a bcrypt hash here?
Verification only. For generation, use your application framework or a CLI like htpasswd -B. Generation should happen close to where you store the hash.
Is the password sent anywhere?
No. Verification runs in your browser using a JavaScript bcrypt implementation. Open DevTools → Network → confirm: zero requests when you click verify.
How long can the password be?
Bcrypt truncates input at 72 bytes — characters past that are ignored. If your application allows longer passwords, it should pre-hash with SHA-256 before bcrypt to avoid the truncation.

Related tools

Last updated: 2025-01-15