Verify Software Downloads with Checksum Verification

Confirm the integrity of downloaded executables, installers, and archives by checking their SHA-256 or MD5 hash. Runs fully offline, no file uploads.

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.

What to look for

  • 64 / 128 hex characters
  • 32 hex characters
  • 2017, ~2.27 million users
  • 2020

Drop any file here

or click to browse

MD5 LEGACY SHA-1 SHA-256 SHA-512
Reading file… 0% Finalizing digests…
MD5 LEGACY — not cryptographically secure
SHA-1
SHA-256 RECOMMENDED
SHA-512

Verify Software Download Checksum

Every downloaded installer, executable, or archive carries a cryptographic fingerprint that most people ignore. Checking that fingerprint against the publisher's published checksum takes seconds and confirms the file you have is exactly the file they released, byte for byte, with no modifications introduced during transit or storage.

How supply chain attacks target software distribution

Traditional security advice tells you to download software only from official sites. That advice is not enough. A supply chain attack targets the delivery mechanism itself: attackers compromise the build pipeline, download server, or mirror infrastructure of a legitimate project, then replace the authentic binary with a modified version containing malicious functionality. The file you download comes from the right place, has the right name, and passes every superficial check.

Three documented incidents show how this plays out at scale. In 2017, a backdoored version of CCleaner was signed with Avast's legitimate code-signing certificate and distributed through official download servers, reaching approximately 2.27 million users before discovery.1 In 2020, the SolarWinds Orion software update pipeline was compromised and inserted malicious code into packages signed by SolarWinds with a valid certificate.2 On PyPI, dozens of typosquatted copies of popular libraries have been removed after researchers discovered malicious code added to packages with names nearly identical to trusted ones.3

What hash verification does and does not protect against

Hash verification confirms one specific property: the file on your disk is byte-for-byte identical to the file the publisher measured when generating the checksum. If the publisher's own infrastructure was compromised before the checksum was generated, the published hash matches the compromised binary and verification passes. Combining hash verification with GPG signature verification adds a meaningful second layer. When the signature validates against the developer's own public key, you also have assurance that the key holder approved the specific binary you downloaded.

The practical takeaway is that hash and signature answer different questions. The hash proves the file is unchanged since the publisher measured it; the signature proves the publisher, identified by their key, is the one who measured it. Use both when the publisher offers a signed checksum, and treat a matching hash alone as sufficient only when the distribution channel is already trustworthy.

Where to find checksums for common software downloads

Major software publishers include checksums on their download pages, typically adjacent to or below the primary download link. Mozilla Firefox lists SHA-512 checksums for every release at ftp.mozilla.org/pub/firefox/releases/, in a file named SHA512SUMS alongside each version's installer files.4 For the Apache Software Foundation, every project release includes SHA-512 checksums adjacent to the download, accompanied by an OpenPGP signature and a KEYS file listing the signing keys.5

GitHub Releases pages frequently include checksum files uploaded alongside the release binaries. Look in the list of release assets below the download links for any file whose name contains "checksum," "hash," "sha256," or "sha512"; most projects that publish checksums follow one of these naming conventions. For projects that do not upload a checksum file to GitHub Releases, check the project's official documentation or security page for the canonical checksum location.

Checksum publication for security and cryptographic tools

Security tools treat hash verification as a prerequisite rather than a recommendation. For GnuPG releases at gnupg.org, each distribution includes SHA-1 checksums alongside detached OpenPGP signatures; verify both the hash and the signature for the strongest assurance.6 VeraCrypt publishes SHA256 and SHA512 checksums for each installer on its download page at veracrypt.fr/en/Downloads.html alongside a PGP signature file, and catching a tampered binary before it runs takes just a pasted hash and a dropped file.7 For any security tool where an attacker would benefit from your running a backdoored version, treating hash-and-signature verification as mandatory is the appropriate baseline.

The same discipline applies to operating-system and driver updates from vendor portals, where a compromised installer can gain kernel-level access on every machine it touches. A 30-second hash check before running a downloaded .exe or .msi is a cheap guard against exactly that class of compromise. CapyToolkit computes SHA-256, SHA-512, SHA-1, and MD5 for any file entirely in your browser, so you can confirm the value matches the publisher's posted checksum without uploading anything.

Building a consistent verification workflow and choosing the right algorithm

Establishing a verification habit means performing the same three steps for every download: retrieve the file, retrieve the publisher's checksum, then compare the values before opening or running the file. Keeping these steps in the same order every time prevents the common mistake of running a file before verifying it. For frequently updated software, bookmark the checksum file URL so you can retrieve it immediately on every future update without searching.

SHA-256 is the current standard and the algorithm to prioritize when a publisher offers multiple options. Both SHA-256 and SHA-512 are considered equally secure for download verification; SHA-512 provides a larger 128-character digest but offers no meaningful security advantage for this use case.8 MD5 produces a 32-character digest and has known collision weaknesses demonstrated in 2004, making it suitable for detecting accidental corruption but significantly weaker against deliberate tampering.9 For software verification, use SHA-256 or SHA-512 whenever available and fall back to MD5 or SHA-1 only when no stronger hash accompanies the download.

Verifying downloads received through email or file transfer

Software packages received through email, messaging platforms, or shared drives add a verification dimension that URL-based downloads do not. Instead of relying on the sender's word that the file is authentic, obtain the expected SHA-256 hash from the software publisher's official website independently, then verify the received file against that hash. This check distinguishes an authentic binary the sender forwarded legitimately from a binary that was substituted at some point in the transfer chain.

When to use this

Use this before running any installer, executable, or archive downloaded from the internet, especially if the download was from a mirror, a torrent, or a third-party distribution site.

Examples

Verifying an application installer

Before
File: app-installer-v2.1.0-windows-x64.exe
Published SHA-256: a1b2c3d4e5f6...
After
Computed SHA-256: a1b2c3d4e5f6...
Result: MATCH

If the installer came from a mirror site, verify against the hash published on the original developer's site.

Sources
  1. 1.

    Avast, "CCleaner compromised to distribute malware for almost a month," bleepingcomputer.com, September 2017. https://www.bleepingcomputer.com/news/security/ccleaner-compromised-to-distribute-malware-for-almost-a-month/

  2. 2.

    CISA, "Advanced Cyber Defense Alert AA20-352A: Advanced Persistent Threat Compromise," cisa.gov, December 2020. https://www.cisa.gov/news-events/cybersecurity-advisories/aa20-352a

  3. 3.

    GitLab Research, "Shai-Hulud: Copycat Attack Targets Python Developers," gitlab.com, August 2024. https://about.gitlab.com/blog/shai-hulud-copycat/

  4. 4.

    Mozilla Foundation, "Mozilla Firefox 136.0.1," ftp.mozilla.org, accessed June 2026. https://ftp.mozilla.org/pub/firefox/releases/136.0.1/SHA512SUMS

  5. 5.

    "Release Signing Policy," apache.org, accessed June 2026. https://www.apache.org/info/verification.html

  6. 6.

    "Integrity Check," gnupg.org, accessed June 2026. https://www.gnupg.org/download/integrity_check.html

  7. 7.

    "Downloads," veracrypt.fr, accessed June 2026. https://veracrypt.fr/en/Downloads.html

  8. 8.

    "SHA-2," Wikipedia, accessed June 2026. https://en.wikipedia.org/wiki/SHA-2

  9. 9.

    Xiaoyun Wang, Dengguo Feng, Xuejia Lai, and Hongbo Yu, "Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD," Cryptology ePrint Archive, Paper 2004/199, August 2004. https://eprint.iacr.org/2004/199

FAQ

Additional resources

Use Case Guides