Local File Hash Verifier

All hashing runs locally in your browser. No file data is ever uploaded.

ZERO UPLOAD · ALL LOCAL
  1. Drop a file onto the drop zone or click it to browse — any file type is supported, including large ISOs and firmware images.
  2. Wait for the tool to compute all four hashes: SHA-256, SHA-512, SHA-1, and MD5. A progress bar is shown for large files.
  3. Find the expected checksum on the software download page — it is usually labelled SHA-256 or SHA-512.
  4. Paste the expected checksum into the Compare field — a green match badge confirms the file is unmodified.
  5. Prefer SHA-256 or SHA-512 when the publisher offers multiple algorithms. MD5 and SHA-1 are legacy and can be forged by an attacker.

Input (File)

PRIVACY GUARANTEED Your file never leaves this tab. Every hash is computed locally in your browser.

Drop any file here

or click to browse

MD5 LEGACY SHA-1 SHA-256 SHA-512
Reading file… 0% Finalizing digests…

Output (Checksums)

MD5 LEGACY — not cryptographically secure
SHA-1
SHA-256 RECOMMENDED
SHA-512

Why verify file checksums

A checksum is a short fingerprint derived from a file's contents. If even a single byte changes, whether through corruption in transit, a failed download, or deliberate tampering, the resulting checksum changes completely.1 Publishers of firmware, OS images, and software installers post expected checksums alongside their downloads so you can confirm that what you received is exactly what was released.

Verification matters most for security-sensitive files, where the consequences of a bad download are severe. A tampered installer can silently backdoor an entire system the moment you run it, and a corrupted firmware image can brick a device that has no easy recovery path. A failed checksum match catches both failure modes before you execute or flash anything, turning a potentially irreversible mistake into a quick re-download.

SHA-256: the current standard

SHA-256 is a NIST-approved SHA-2 algorithm, and many modern software publishers, package managers, and operating systems use it to publish checksums.1 Producing a 64-character hex digest, it carries 128 bits of collision-resistance strength according to NIST's hash-function guidance:2 no practical technique can make two different real files share the same SHA-256 output. Because both NIST and major OS vendors treat it as the current standard, SHA-256 is the hash to match whenever a publisher lists multiple algorithm options alongside a download.

When to choose SHA-512

For large files on 64-bit hardware, SHA-512 often computes faster than SHA-256 because its internal operations align naturally with 64-bit CPU registers.3 It uses a 512-bit internal state and produces a 128-character hex digest, which gives it a wider security margin than SHA-256.4 Both algorithms remain unbroken for all practical purposes, so choosing between them comes down to what the publisher provided: match the algorithm they listed rather than switching to a different one on your own.2

A concrete digest makes the concept tangible. A file containing exactly the five bytes hello, with no trailing newline, hashes to SHA-256 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824. Add, remove, or change a single character and every one of those 64 hex digits shifts, which is the avalanche effect that makes a checksum match meaningful in the first place.

TIP Most Linux distribution download pages list SHA-256 checksums in a dedicated file such as SHA256SUMS or CHECKSUMS placed alongside the ISO image. Copy the published digest for your exact image, hash the downloaded file with this tool, and paste the expected value into the Compare field to confirm a match.

Reading a checksums file into the Compare field

Open a checksums file and every line reads the same way: the hex digest, a separator, and the filename that digest belongs to.5 The digest is the only part the Compare field wants, so copy the hex string alone and leave the filename behind. The field treats whatever you paste as one whole value and matches it against all four computed digests, so a digest followed by its filename reads as a non-match even when every hex character is correct. Selecting the digest without the trailing filename is the one fiddly step, and taking it slowly beats re-downloading a file that only looked wrong.

Casing and spacing work in your favor. The field trims surrounding whitespace and lowercases whatever arrives, so an uppercase digest lifted from a printed spec sheet matches the lowercase digest rows without any manual conversion on your part, and stray spaces before or after the paste are equally harmless. What never matches is extra content trailing the digest: the filename from the checksums line, a stray label, or a digest written in a non-hex encoding. A paste that reads as a match badge is therefore a paste of the bare digest, in any casing, with nothing attached after the last hex character.

The same check from a terminal

The browser route has a terminal twin. Every desktop operating system ships a checksum utility, so the same verification runs with no web tool at all: Linux distributions and Raspberry Pi images use sha256sum,6 macOS carries shasum,7 and Windows provides Get-FileHash in PowerShell.8 Each utility prints the digest for a file you point it at, and checking that output against the publisher's published value performs exactly the verification the Compare field automates. The hash math is identical in both places; a SHA-256 digest computed in a terminal equals the same digest computed in this browser, and only the interface differs.

Each route earns its place. The browser wins for one-off checks on a machine you would rather not touch: nothing lands in shell history, no script needs writing, and dragging one file onto the page returns all four digests at once, which is exactly what you want when the publisher lists several algorithms and you are unsure which one to trust. The terminal wins on servers and in scripted pipelines, where the files already live beside a shell and a verification step belongs inside the deployment script rather than inside a tab you open by hand. Pick the route by where the file lives and how often the check repeats; the digest comes out the same either way.

Why MD5 is legacy

Through the 1990s and early 2000s, MD5 was the dominant checksum algorithm for software distribution. Researchers broke it cryptographically in 2004 by demonstrating that two different files can be deliberately crafted to produce the same MD5 hash.9 That collision capability means an attacker can substitute a malicious file that passes an MD5 check, so MD5 provides no protection against an adversary who controls the download source.

MD5 still catches accidental corruption reliably: a damaged download will produce a different hash in nearly every case.9 It is not safe for security-critical verification where an active attacker is a concern, because a determined adversary can craft a valid-looking MD5 match. If the publisher offers SHA-256 or SHA-512 alongside MD5, always use the stronger option.

When older hashes still appear

Like MD5 but through a different class of attack, SHA-1 lost its security guarantees when researchers from Google and CWI Amsterdam demonstrated a practical collision in 2017, an event known as SHAttered.10 Older package mirrors and legacy build pipelines still produce SHA-1 checksums, but no new infrastructure should rely on them for security verification. Treat a SHA-1 match the same way you treat an MD5 match: it confirms the download was not accidentally corrupted, but does not protect against deliberate substitution by an attacker.

Large file support

This tool processes files in 2 MB chunks, feeding each chunk to all four hash algorithms simultaneously so every digest finishes at the same time. Only one chunk is held in memory at any point, which means multi-gigabyte ISO images and firmware dumps verify without exhausting browser memory, regardless of how large the file is.

What affects hashing speed

The hashing engine runs on the main browser thread and yields control between chunks, so the page stays responsive during long computations. Actual completion time depends on storage speed, browser overhead, and the selected algorithms. Because the browser File API reads only files the user explicitly selects, you can verify sensitive payloads like firmware images, medical device software, or security tool downloads without passing them through a third-party service.11

NOTE The file is read directly from your local storage through the browser File API and is never uploaded or transmitted to any remote server. This tool works entirely offline once the page has loaded, so sensitive firmware images and private binaries stay on your machine from start to finish.

The input is the file, not the text

This verifier takes files and nothing else. The drop zone is the single input path, and no text box exists anywhere in the suite, so there is no way to type or paste content for hashing here. That boundary is deliberate. A digest computed over typed-in text answers a different question, the kind a developer asks when fingerprinting a string for a cache key or a short message for a signature, and that job belongs to a different kind of tool. Download verification needs the artifact on disk, byte for byte as the publisher shipped it, which is what the file picker hands over.

For this job, file-first is the honest shape. What you are verifying is the artifact on disk, and its exact bytes are what the publisher hashed in the first place, so any path that re-encodes the content on the way in would poison the comparison. Typed or pasted text goes through exactly that kind of transformation: an editor normalizes line endings, trims invisible whitespace, and may re-save with a different encoding, and each of those changes shifts every hex character of the digest. Dragging the downloaded file itself skips the transformation entirely, which is what makes a green match badge meaningful rather than coincidental.

Checksums, signatures, and the chain of trust

A checksum proves that a file's contents are intact, but it does not prove the file came from the actual publisher. Both the binary and its posted checksum live on the same server, so a compromised download origin or CDN can swap them out together and the hash would still match the tampered file.

For most personal downloads over HTTPS from the publisher's own domain, a matching SHA-256 hash is sufficient because the TLS connection already authenticates the server.12 Fetching the checksum from a different location than the file itself, such as a GitHub release page while downloading the binary from a mirror, partially reduces this risk: an attacker would need to compromise both locations simultaneously, and GitHub release assets expose SHA-256 digests through the REST API.13

Adding a GPG signature

GPG signatures add the authenticity layer that checksums alone cannot provide. When a publisher signs a release, they use a private key that only they hold to sign the checksum file; you verify the signature against their published public key, and a valid result confirms two things at once: the file is unmodified and it was signed by whoever holds that private key.14

Linux distributions commonly publish checksums in files such as SHA256SUMS or CHECKSUMS in the same directory as the ISO image.156 Fedora signs its CHECKSUM file before verification.15 For production deployments or security-critical tools, treating a checksum match as the first step and a GPG signature verification as the second is the professional standard.

Where publishers post checksums

Knowing where publishers post checksums saves the search time before you can verify anything. GitHub releases pages list SHA-256 digests in the release notes or as separate .sha256 files attached to the release. Popular Linux distributions post checksums in a file typically named SHA256SUMS or CHECKSUMS in the same directory as the ISO image.

GitHub release assets make expected checksums available alongside downloads.13 Linux distribution mirrors also publish checksums in the same directory as the ISO image. CapyToolkit's hash verifier handles the computation side for these workflows: drop the downloaded file onto the tool, paste the expected hash from the publisher's page into the Compare field, and a green match badge confirms the download is exactly what the publisher released.

When the published digest is not hex

Some publishers write their digests in a different alphabet. Package-manager lockfiles and some registry metadata publish integrity digests encoded as base64 rather than as hex, and the value underneath is unchanged: it is the same digest over the same file bytes, only spelled with a 64-character alphabet instead of a 16-character one. That is why a base64 string looks shorter than its hex twin; the two notations pack the same bits with different density. Nothing about the file is different, and nothing about the algorithm changed, which is why the encoding question is purely a notation question.

Here that difference collides with the Compare field. The field matches the lowercase hex digests the tool computes, so a base64 string lifted from a lockfile never matches, even when the file on disk is byte-for-byte perfect and the digest underneath is exactly right. Convert the published value to hex before pasting, or find a hex digest published for the same artifact, and the match behaves exactly as this page describes. Until one of those happens, the field is answering a slightly different question than the one you asked, and a NO MATCH badge on a healthy file is the confusing result.

Before You Trust a Match Checklist

  • Algorithm matches You compared the same algorithm the publisher listed. A matching MD5 means nothing if they published a SHA-256 checksum.
  • Full digest compared Every character of the hash matches, not just the first few. A single differing character means a different file.
  • Reference hash source is trusted The expected checksum came from the publisher's own site over HTTPS, not a mirror or a third-party forum post.

Drop your own file above and check its computed hash against these three conditions before you trust a green match badge.

Sources
  1. 1.

    NIST, "FIPS 180-4, Secure Hash Standard (SHS)," csrc.nist.gov, August 2015. https://csrc.nist.gov/pubs/fips/180-4/upd1/final

  2. 2.

    NIST, "Hash Functions," csrc.nist.gov, accessed June 2026. https://csrc.nist.gov/projects/hash-functions

  3. 3.

    Shay Gueron, Simon Johnson, and Jesse Walker, "SHA-512/256," IACR Cryptology ePrint Archive, 2010. https://eprint.iacr.org/2010/548

  4. 4.

    D. Eastlake 3rd and T. Hansen, "US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)," RFC 6234, IETF, May 2011. https://www.rfc-editor.org/rfc/rfc6234

  5. 5.

    Debian, "SHA256SUMS," cdimage.debian.org, accessed June 2026. https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA256SUMS

  6. 6.

    GNU coreutils, "sha256sum(1)," manpages.debian.org, accessed September 2026. https://manpages.debian.org/bookworm/coreutils/sha256sum.1.en.html

  7. 7.

    Mark Shelor, "shasum - Print or Check SHA Checksums," metacpan.org, accessed September 2026. https://metacpan.org/pod/shasum

  8. 8.

    Microsoft, "Get-FileHash (Microsoft.PowerShell.Utility)," learn.microsoft.com, accessed September 2026. https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash

  9. 9.

    S. Turner and L. Chen, "Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms," RFC 6151, IETF, March 2011. https://www.rfc-editor.org/rfc/rfc6151.txt

  10. 10.

    Marc Stevens, Elie Bursztein, Pierre Karpman, Ange Albertini, and Yarik Markov, "The first collision for full SHA-1," IACR Cryptology ePrint Archive, 2017. https://eprint.iacr.org/2017/190

  11. 11.

    Mozilla Developer Network, "FileReader," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Web/API/FileReader

  12. 12.

    E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.3," RFC 8446, IETF, August 2018. https://datatracker.ietf.org/doc/html/rfc8446

  13. 13.

    GitHub, "REST API endpoints for releases," github.com, accessed June 2026. https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28

  14. 14.

    GnuPG, "Making and verifying signatures," gnupg.org, accessed September 2026. https://www.gnupg.org/gph/en/manual/x135.html

  15. 15.

    Fedora Project, "Verify your Downloaded Image," alt.fedoraproject.org, accessed June 2026. https://alt.fedoraproject.org/en/verify.html

FAQ