Free tool · runs in your browser
Hash Lab
Powered by hash-wasm · MIT
01Compute
Encoded as UTF-8, hashed as you type.
With a key (UTF-8), MD5, SHA-1, SHA-2 and SHA-3 become HMACs (RFC 2104). The other functions are hidden, as HMAC is not defined for them.
Digests
ready- MD5 128 bits Match
- SHA-1 160 bits Match
- SHA-224 224 bits Match
- SHA-256 256 bits Match
- SHA-384 384 bits Match
- SHA-512 512 bits Match
- SHA3-224 224 bits Match
- SHA3-256 256 bits Match
- SHA3-384 384 bits Match
- SHA3-512 512 bits Match
- Keccak-256 256 bits Match
- BLAKE2b-512 512 bits Match
- BLAKE3 256 bits Match
- CRC32 32 bits Match
- xxHash64 64 bits Match
MD5 and SHA-1 are broken against collisions: keep them for integrity checks with no adversary. CRC32 and xxHash64 are checksums with no cryptographic value.
02Identify
Length, alphabet and prefix determine the possible formats.
| Format | hashcat -m | John --format | Confidence |
|---|
Modes follow the hashcat and John the Ripper (jumbo) documentation. A dash means no established mode.
What is a hash?
A hash, or digest, is the result of applying a hash function to data. For a given algorithm, its size is fixed and the same input produces the same digest. A cryptographic hash is used to check integrity, among other purposes; it cannot be decrypted like an encrypted message.
Hash functions
A hash function turns data of any size into a fixed-size digest: 128 bits for MD5, 256 bits for SHA-256. The same input always gives the same digest, and changing a single bit changes the result completely. A cryptographic hash adds three properties: it must be infeasible in practice to recover the input (preimage resistance), to find another input with the same digest (second preimage resistance) and to craft two inputs that collide.
HMAC (RFC 2104) combines a hash function with a secret key. It proves that a message comes from someone who knows the key and that it has not been altered. Webhook signatures, HS256 JWTs and many APIs rely on it.
The families on offer
SHA-2 (SHA-224 to SHA-512) remains the default choice. SHA-3, standardised by NIST in 2015 (FIPS 202), uses a different construction, the Keccak sponge. Keccak-256 is the pre-standard variant with different padding: Ethereum uses it, and its digests do not match SHA3-256. BLAKE2b and BLAKE3 are faster than SHA-2 in software; BLAKE3 is popular for verifying large files. CRC32 and xxHash64 are checksums: they catch accidental corruption but are trivial to forge.
The work is done by hash-wasm, which compiles the reference implementation of each function to WebAssembly. Our automated tests check the results against published test vectors and against OpenSSL.
Why MD5 and SHA-1 are broken
MD5 collisions have taken seconds to compute since 2005. They were used to forge a certificate authority in 2008, then the Microsoft certificate abused by the Flame malware in 2012. For SHA-1, Google and CWI published two different PDFs with the same digest in 2017 (SHAttered), and a chosen-prefix collision followed in 2020. Both remain acceptable for spotting accidental corruption, but not for a signature, a certificate or any check against an adversary. Use SHA-256, SHA-512, SHA-3 or BLAKE3.
Passwords are a special case
A fast hash function is a poor choice for storing passwords: a GPU tries tens of billions of MD5 or NTLM hashes per second. A salt, a random value unique to each account, defeats precomputed tables and forces each hash to be attacked separately, but it does not slow the computation down.
Dedicated functions are deliberately slow and tunable. Argon2id is the current OWASP recommendation; scrypt and bcrypt remain acceptable, and so does PBKDF2 with a high iteration count where FIPS compliance requires it. Tune the cost so that one verification takes a few tens of milliseconds on your server.
The limits of identification
A hash does not say which algorithm produced it. Prefixed formats ($2b$, $6$, $krb5tgs$) are identified without ambiguity. A bare hex string only reveals its length: 64 characters fit SHA-256 as well as SHA3-256, BLAKE3 or a salted SHA-256.
Always cross-check with the source: a MySQL database, an /etc/shadow file, an NTDS dump or a Responder capture tell you the format far better than the string alone.
?Frequently asked questions
Are my files uploaded anywhere?
Your browser reads the file in chunks and hashes it in memory with hash-wasm, a WebAssembly build of the reference implementations. Nothing is sent or stored. You can check the integrity of a confidential document without it leaving your machine.
How large a file can I hash?
The file is read in 4 MB blocks and each block feeds every function at once, so it is never held in memory as a whole. Files of several gigabytes work, at the speed of your processor. For a single algorithm on a very large file, sha256sum, b3sum or Get-FileHash remain faster.
Can an MD5 or SHA-1 hash be “decrypted”?
A hash function cannot be decrypted, because it is one-way. Sites that claim to do it look your hash up in tables of precomputed digests. A common password hashed without a salt is found instantly; a long random one is not.
Why does identification return several results?
Many formats share the same length and alphabet. A 32-character hex string can be MD5, NTLM, MD4 or LM. The tool ranks candidates by how common they are, but only the context (application, database, Windows dump) settles it.
What is in the John column?
It gives the format name to pass to John the Ripper with --format=. A dash means the format does not exist under that name, or is not established enough to state with certainty.
+More tools
- ⟲Forge
Encoding and decoding recipes, exportable to CyberChef.
- {·}JWT Inspector
Decode a JWT, verify its signature, spot weaknesses.
- u:pDefault Credentials
Default logins for thousands of devices and applications.
Technical assessment
Request an application or infrastructure assessment
For an assessment by our team, specify the systems involved, available access and requested tests in your enquiry.