Create and verify bcrypt, scrypt and Argon2 password hashes in your browser, with warnings when settings fall below OWASP recommendations. Verification also reads Django PBKDF2 hashes.
Choose Generate hash, then pick an Algorithm: bcrypt, scrypt or Argon2.
Adjust the parameters (Cost factor for bcrypt; N, r and p for scrypt; Variant, Memory, Iterations and Parallelism for Argon2) and watch for warnings.
Type the Password and click Generate hash, then copy the hash string, plus the raw hash and salt for scrypt and Argon2.
To check a password, switch to Verify hash (or click Verify this hash), paste the Hash string, type the Password to check and click Verify.
No. Hashing runs in a background worker on your device, and passwords and hashes are never stored or sent.
Each hash gets a new random 16-byte salt (bcrypt creates its own salt). The salt is stored inside the hash string, so verification still works. Use a Custom salt only to reproduce a known hash.
Argon2id is the recommended choice for new systems; OWASP's minimum is m = 19 MiB, t = 2, p = 1. For scrypt it recommends N = 2^17, r = 8, p = 1, and for bcrypt a cost of at least 10. The tool warns when you go below these.
bcrypt ($2a$, $2b$, $2y$), Argon2id, Argon2i and Argon2d PHC strings, scrypt ($scrypt$ and $s0$), and Django pbkdf2_sha256 / pbkdf2_sha1. Linux crypt hashes ($1$, $5$, $6$, $y$), Apache $apr1$ and plain MD5/SHA digests are recognised but not supported.
bcrypt only uses the first 72 bytes of a password and ignores the rest. The tool warns you when that happens; Argon2 and scrypt have no such limit.
No. It only checks whether a password you type matches. Password hashes are designed to be slow and one-way, which is also why hashing takes a moment; you can watch the timer or click Cancel.