·8 min read·Encoding & Security

How to Verify File Integrity with Hash Checksums

Learn how to use MD5, SHA-256, and SHA-512 checksums to verify downloaded files haven't been corrupted or tampered with. Step-by-step for Windows, Mac, and Linux.

Try our free Hash Generator

Generate MD5, SHA-256, SHA-512 hashes for text and files. All processing in your browser.

Open Tool

What is a Hash Checksum?

A hash checksum is a digital fingerprint for a file. Just as your fingerprint uniquely identifies you, a hash uniquely identifies the exact contents of a file. A hash algorithm takes any input — whether it is a 1 KB text file or a 4 GB operating system ISO — and produces a fixed-length string of characters that represents that specific content.

The critical property of a hash is that any change to the file, no matter how small, produces a completely different hash. Changing a single bit in a 4 GB file results in a totally different checksum. This makes hashes extremely reliable for detecting whether a file has been altered — whether by corruption during download, a disk error, or intentional tampering by a malicious actor.

Here is a concrete example using SHA-256:

Input:  "Hello World"
SHA-256: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Input:  "Hello World!"  (added one exclamation mark)
SHA-256: 7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069

Notice how adding a single character completely changed the hash. There is no pattern or predictability — this is by design. Hash functions are one-way: you cannot reverse-engineer the original file from its hash, and you cannot predict what hash a modified file will produce.

Why Verify Downloads

Every time you download a file from the internet, there is a risk that the file you receive is not identical to the file the publisher intended you to get. This can happen for several reasons:

  • Network corruption — Data can be corrupted during transfer due to packet loss, unstable connections, or interrupted downloads. Even a single flipped bit can make software unusable or cause subtle bugs that are extremely hard to diagnose.
  • Mirror tampering — When you download software from a mirror site rather than the official source, there is a risk the mirror has been compromised. Attackers have been known to replace legitimate installers with malware-infected versions on popular download mirrors.
  • Man-in-the-middle attacks — On unsecured networks, an attacker can intercept your download and substitute a modified file. Even with HTTPS, compromised certificate authorities or TLS downgrade attacks can make this possible in rare cases.
  • Disk and storage errors — After downloading, files can be corrupted by failing hard drives, bad sectors, or filesystem errors. Verifying the hash after copying files to external drives or backup storage ensures the copy is perfect.
  • Firmware and IoT updates — Flashing corrupted firmware to a router, embedded device, or IoT sensor can brick the hardware. Always verify firmware checksums before flashing.

Major software publishers provide checksums specifically for this purpose. When you download an Ubuntu ISO, a Python installer, or a Node.js binary, the download page includes SHA-256 hashes. By computing the hash of your downloaded file and comparing it to the published hash, you can be confident the file is authentic and intact. You can use our Hash Generator to compute hashes directly in your browser without installing any software.

Step-by-Step — Windows

Windows has built-in tools for computing file hashes. You do not need to install any additional software.

Method 1: certutil (Command Prompt)

The certutil command is available on every Windows installation since Windows 7:

# Open Command Prompt (Win+R, type "cmd", press Enter)

# Generate SHA-256 hash
certutil -hashfile C:\Users\You\Downloads\installer.exe SHA256

# Generate MD5 hash
certutil -hashfile C:\Users\You\Downloads\installer.exe MD5

# Generate SHA-512 hash
certutil -hashfile C:\Users\You\Downloads\installer.exe SHA512

# Example output:
# SHA256 hash of C:\Users\You\Downloads\installer.exe:
# e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
# CertUtil: -hashfile command completed successfully.

Method 2: Get-FileHash (PowerShell)

PowerShell provides a cleaner interface with the Get-FileHash cmdlet:

# Open PowerShell (Win+X, select "Windows PowerShell")

# SHA-256 (default algorithm)
Get-FileHash C:\Users\You\Downloads\installer.exe

# Specify algorithm explicitly
Get-FileHash C:\Users\You\Downloads\installer.exe -Algorithm SHA256
Get-FileHash C:\Users\You\Downloads\installer.exe -Algorithm SHA512
Get-FileHash C:\Users\You\Downloads\installer.exe -Algorithm MD5

# Example output:
# Algorithm  Hash                                                              Path
# ---------  ----                                                              ----
# SHA256     E3B0C44298FC1C149AFBF4C8996FB924...  C:\Users\You\Downloads\installer.exe

Tip: To compare the hash, copy the expected hash from the download page, then visually compare it with the output. In PowerShell, you can automate this:

# Automated hash comparison in PowerShell
$expected = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
$actual = (Get-FileHash .\installer.exe -Algorithm SHA256).Hash
if ($actual -eq $expected) { "MATCH - File is authentic" }
else { "MISMATCH - File may be corrupted or tampered with!" }

Step-by-Step — Mac and Linux

Mac and Linux systems include hash utilities out of the box. The commands differ slightly between platforms.

macOS

# SHA-256 hash
shasum -a 256 ~/Downloads/installer.dmg

# SHA-512 hash
shasum -a 512 ~/Downloads/installer.dmg

# MD5 hash
md5 ~/Downloads/installer.dmg

# Example output:
# e3b0c44298fc1c14...b7852b855  /Users/you/Downloads/installer.dmg

Linux

# SHA-256 hash
sha256sum ~/Downloads/ubuntu-24.04-desktop-amd64.iso

# SHA-512 hash
sha512sum ~/Downloads/ubuntu-24.04-desktop-amd64.iso

# MD5 hash
md5sum ~/Downloads/ubuntu-24.04-desktop-amd64.iso

# Verify against a checksum file (common for Linux ISOs)
# Download the SHA256SUMS file, then:
sha256sum -c SHA256SUMS

# Output: ubuntu-24.04-desktop-amd64.iso: OK

Comparing Expected vs Actual Hash

The manual approach is to compare the two hash strings character by character. But for long hashes (SHA-256 is 64 characters), this is error-prone. Automate it instead:

# Bash one-liner: compare hash and report result
expected="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
actual=$(sha256sum installer.tar.gz | awk '{print $1}')

if [ "$expected" = "$actual" ]; then
  echo "MATCH - File integrity verified"
else
  echo "MISMATCH - Do not use this file!"
fi

For generating hashes of text strings rather than files — for example, when building secure passwords or implementing API authentication — our browser-based hash generator handles both text and file inputs.

Verifying Hashes Online

If you prefer not to use the command line, or you are on a shared computer where you cannot run commands, online hash tools provide a convenient alternative. Our Hash Generator supports both text and file hashing directly in your browser.

How it works: Drag and drop your file (or click to browse), select the hash algorithm (MD5, SHA-1, SHA-256, or SHA-512), and the tool computes the hash instantly. For text input, simply type or paste the string you want to hash. All computation happens locally in your browser using the Web Crypto API — your file never leaves your device.

When to use online tools:

  • 1. You are on a computer where you do not have terminal access (school, library, work computer with restrictions).
  • 2. You want to hash text strings rather than files (API keys, passwords, tokens).
  • 3. You need to quickly compare multiple algorithms side by side.
  • 4. You want to encode the hash output in different formats (hex, Base64). Our Base64 Encoder can convert between encoding formats.

Security note:Always use a tool that processes files locally. If a hash tool uploads your file to a server, it defeats the purpose of integrity verification — someone could intercept or modify the file during upload. ToolZip's hash generator uses the Web Crypto API and never transmits your data.

Common Hash Algorithms Compared

Not all hash algorithms are created equal. Here is a comparison of the four most common algorithms you will encounter when verifying file downloads:

AlgorithmOutput SizeSecuritySpeedUse Case
MD5128 bits (32 hex chars)BrokenFastestLegacy checksums, non-security file deduplication
SHA-1160 bits (40 hex chars)WeakFastGit commit IDs (legacy), not recommended for new use
SHA-256256 bits (64 hex chars)StrongModerateFile verification, digital signatures, blockchain
SHA-512512 bits (128 hex chars)StrongestSlower on 32-bit, faster on 64-bitHigh-security applications, government systems

MD5 was the standard for decades, but collision attacks were demonstrated in 2004 by researchers at Shandong University. This means an attacker can craft two different files that produce the same MD5 hash. MD5 is still useful for detecting accidental corruption (bad downloads, disk errors) but should not be trusted for verifying the authenticity of software downloads.

SHA-1 was considered secure until Google demonstrated a practical collision (the SHAttered attack) in 2017. Major browsers and certificate authorities have since deprecated SHA-1. Git still uses SHA-1 for commit hashes but is migrating to SHA-256.

SHA-256 is the current recommended standard for file verification. It is part of the SHA-2 family designed by the NSA and standardized by NIST. No collision has ever been found, and the computational cost of finding one is astronomically high. Most software publishers now provide SHA-256 checksums.

SHA-512 provides an even larger output and higher security margin. It is actually faster than SHA-256 on 64-bit processors because it operates on 64-bit words natively. However, SHA-256 is more than sufficient for file verification, and SHA-512 is primarily used in government and military applications where regulations require it.

Frequently Asked Questions

What hash algorithm should I use for file verification?
SHA-256 is the best choice for file verification in 2026. It is fast, widely supported on all operating systems, and cryptographically secure. Use SHA-512 only if the publisher specifically provides it. Avoid MD5 and SHA-1 for security-sensitive verification.
Can two different files have the same hash?
Theoretically yes (called a collision), but practically impossible with SHA-256. MD5 collisions have been demonstrated since 2004, and SHA-1 collisions since 2017. For SHA-256, no collision has ever been found, and finding one would require more computing power than currently exists.
Is MD5 safe for file checksums?
MD5 is safe for detecting accidental corruption (download errors, disk failures) but not for detecting intentional tampering. Attackers can create malicious files with the same MD5 hash as legitimate ones. For software downloads, always prefer SHA-256.
How do I verify a hash on Windows?
Open Command Prompt and run: certutil -hashfile yourfile.exe SHA256. Compare the output with the expected hash from the download page. In PowerShell, use: Get-FileHash yourfile.exe -Algorithm SHA256.

Generate File Hashes Now

Compute MD5, SHA-256, and SHA-512 hashes for text and files. Free, private, everything runs in your browser.

Open Hash Generator

Related Tools