PDF & files

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.

File hash calculator and verifier
Esc to restore

Your inputs

Up to 12 files of up to 30 MB each, and 60 MB in total. Files are read in this browser only and are never uploaded.

Used only when no file is chosen. The text is hashed as UTF-8 exactly as typed, with no line break added at the end.

Paste the checksum the publisher gives. Accepted: a bare hash, sha256sum lines (hash, two spaces or a space and a star, then the file name), BSD lines such as SHA256 (name) = hash, and PowerShell Get-FileHash rows. Capital letters, spaces and colons are ignored. The algorithm is read from the length: 8 digits CRC-32, 32 MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384, 128 SHA-512.

Results update as you type. Larger files run when you press Update result.

Your result

Your result will appear here.

More actions

Your inputs stay in this browser. Nothing is uploaded or saved.

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
  1. 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
  2. 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
  3. 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
  4. 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
  5. 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

Example result
FileSize (bytes)AlgorithmHashCheck
(typed text)3SHA-256ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015adMatch

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.