File hash calculator and verifier
Work out the MD5, SHA-1, SHA-256, SHA-384, SHA-512 or CRC-32 of files or text, and check them against a published checksum.
A clear answer. Here’s how.
Each file is read as bytes on this device and hashed in full: MD5 (RFC 1321) and CRC-32 (the zlib/PNG/ZIP polynomial 0xEDB88320, check value CBF43926 for the nine characters 123456789) are computed by this page, SHA-1 and the SHA-2 family (FIPS 180-4) by the browser’s Web Crypto. Typed text is hashed as its UTF-8 bytes. The result is written in the format of the sha256sum and md5sum programs, “hash, two spaces, name”, so the download can be checked later with sha256sum -c; typed text is listed as “-”, as those programs list standard input. An expected hash is matched by length to MD5, SHA-1, SHA-256, SHA-384, SHA-512 or CRC-32 (a 64-digit value could also come from SHA3-256 or BLAKE2s, which would not match). A line with a file name is compared with the file of that name (folders and letter case ignored); a bare hash is compared with every file, which also tells you which file is the one you were given. One file and one hash are always compared, even if the name differs. A match shows the file is identical to what the hash was made from; it does not show the hash itself came from a trustworthy place, and MD5, SHA-1 and CRC-32 can be matched by deliberately crafted files. Up to 12 files, 30 MB each and 60 MB in all.
How this is checked
5 reference checks passed These 5 cases were run when this page was built, on 20 October 2026, and all reproduce within the stated tolerance. The same cases are part of the automated tests that run on every change to Toolmoz. Engine version 1.
See the checks and where each expected answer comes from
Case 1
- Inputs
- The tool’s default inputs
- Expected, and what Toolmoz gave
- SHA-256 expected ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, Toolmoz ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015adFiles matching expected 1, Toolmoz 1headline expected Match: the hash is the one you expected., Toolmoz Match: the hash is the one you expected.
- Where the expected answer comes from
- NIST FIPS 180-4 appendix B.1 (SHA-256 example): the message abc, one 512-bit block, gives ba7816bf 8f01cfea 414140de 5dae2223 b00361a3 96177a9c b410ff61 f20015ad; also reproduced by Python hashlib
- Allowed difference
- exact
Case 2
- Inputs
- Or type or paste text to hash abcHash allExpected hash (optional)
- Expected, and what Toolmoz gave
- SHA-1 expected a9993e364706816aba3e25717850c26c9cd0d89d, Toolmoz a9993e364706816aba3e25717850c26c9cd0d89dSHA-384 expected cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7, Toolmoz cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7SHA-512 expected ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f, Toolmoz ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49fMD5 expected 900150983cd24fb0d6963f7d28e17f72, Toolmoz 900150983cd24fb0d6963f7d28e17f72CRC-32 expected 352441c2, Toolmoz 352441c2
- Where the expected answer comes from
- FIPS 180-4 examples for SHA-1, SHA-384 and SHA-512 of abc; RFC 1321 appendix A.5 for MD5 of abc; CRC-32 of abc from Python zlib.crc32 (an independent implementation)
- Allowed difference
- exact
Case 3
- Inputs
- Or type or paste text to hash 123456789Hash crc32Expected hash (optional)
- Expected, and what Toolmoz gave
- CRC-32 expected cbf43926, Toolmoz cbf43926Total size (bytes) expected 9, Toolmoz 9
- Where the expected answer comes from
- The CRC catalogue check value of CRC-32/ISO-HDLC is 0xcbf43926 for the nine ASCII characters 123456789
- Allowed difference
- exact
Case 4
- Inputs
- Or type or paste text to hash Hash md5Expected hash (optional)
- Expected, and what Toolmoz gave
- MD5 expected d41d8cd98f00b204e9800998ecf8427e, Toolmoz d41d8cd98f00b204e9800998ecf8427eTotal size (bytes) expected 0, Toolmoz 0
- Where the expected answer comes from
- RFC 1321 appendix A.5 test suite: MD5 of the empty string is d41d8cd98f00b204e9800998ecf8427e
- Allowed difference
- exact
Case 5
- Inputs
- Or type or paste text to hash abcHash sha256Expected hash (optional) ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ae
- Expected, and what Toolmoz gave
- Files matching expected 0, Toolmoz 0Files not matching expected 1, Toolmoz 1
- Where the expected answer comes from
- The expected hash is the abc hash with its last digit changed from d to e, so one digit differs and the check must fail
- Allowed difference
- exact
What this shows: the engine reproduces independently worked values for these cases. It does not prove every possible input is right. To test an answer you were given, see how to check a number; to see what is and is not checked across Toolmoz, see the accuracy ledger.
See a worked example
Worked example
A fixed demonstration, separate from the values you enter above.
- Or type or paste text to hash
- abc
- Hash
- SHA-256
- Expected hash (optional)
- ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
Example result
| File | Size (bytes) | Algorithm | Hash | Check |
|---|---|---|---|---|
| (typed text) | 3 | SHA-256 | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad | Match |
No file was chosen, so the text box was hashed as UTF-8 text exactly as typed (no line break is added at the end). A 64-digit hash is taken to be SHA-256; SHA3-256 and BLAKE2s also have 64 digits and would not match.