← 返回博客

如何在 Windows/Mac/Linux 检查 MD5 校验和

2026-04-10 · 5 分钟阅读

← 返回博客

如何在各操作系统检查 MD5 校验和

· 5 分钟阅读

什么是 MD5 校验和

MD5 校验和(Checksum)是文件内容的 MD5 哈希值,用于验证文件完整性。软件发布者通常在下载页面旁边提供文件的 MD5 校验和,你下载完成后计算本地文件的 MD5 并与之比较,如果一致则说明文件完整未被损坏。

在 Linux 上检查 MD5 校验和

# Calculate MD5 of a single file
md5sum filename.zip
# Output: d41d8cd98f00b204e9800998ecf8427e  filename.zip

# Verify against a known hash
echo "d41d8cd98f00b204e9800998ecf8427e  filename.zip" | md5sum -c
# Output: filename.zip: OK  (or: FAILED)

# If publisher provides a .md5 file
md5sum -c filename.zip.md5
# Checks each file listed in the .md5 file

# Calculate MD5 for all files in directory
md5sum /path/to/directory/* > checksums.md5
md5sum -c checksums.md5  # Verify later

在 macOS 上检查 MD5 校验和

# Method 1: md5 command (macOS native)
md5 filename.zip
# Output: MD5 (filename.zip) = d41d8cd98f00b204e9800998ecf8427e

# Method 2: md5sum (from Homebrew coreutils)
brew install coreutils
gmd5sum filename.zip

# Method 3: openssl (built-in)
openssl md5 filename.zip

# Method 4: certutil (available via Homebrew)
# One-liner comparison
[ "$(md5 -q filename.zip)" = "expected_hash_here" ] && echo "OK" || echo "FAIL"

在 Windows 上检查 MD5 校验和

# PowerShell (Windows 7+): Get-FileHash
Get-FileHash filename.zip -Algorithm MD5

# One-liner comparison in PowerShell
$expected = "d41d8cd98f00b204e9800998ecf8427e"
$actual = (Get-FileHash filename.zip -Algorithm MD5).Hash.ToLower()
if ($expected -eq $actual) { Write-Host "MATCH - File OK" -ForegroundColor Green }
else { Write-Host "MISMATCH - File corrupted!" -ForegroundColor Red }

# Command Prompt (older Windows): certutil
certutil -hashfile filename.zip MD5
# Also supports: SHA1, SHA256, SHA384, SHA512

批量验证多个文件

当需要验证多个文件时,通常会有一个包含所有文件哈希的清单文件(通常是 .md5 或 checksums.txt)。格式是每行一个条目:哈希值加两个空格加文件名。

# checksums.md5 file format:
d41d8cd98f00b204e9800998ecf8427e  file1.tar.gz
5d41402abc4b2a76b9719d911017c592  file2.tar.gz
b1946ac92492d2347c6235b4d2611184  file3.tar.gz

# Linux: verify all at once
md5sum -c checksums.md5
# file1.tar.gz: OK
# file2.tar.gz: OK
# file3.tar.gz: FAILED

# PowerShell batch verification script
Get-Content checksums.md5 | ForEach-Object {
    $parts = $_ -split "  "
    $expected = $parts[0]
    $file = $parts[1]
    $actual = (Get-FileHash $file -Algorithm MD5).Hash.ToLower()
    if ($expected -eq $actual) { "$file : OK" } else { "$file : FAILED" }
}

常见问题:为什么哈希不匹配

SHA256 vs MD5 校验和:应该用哪个

对于文件完整性校验(检测意外损坏),MD5 仍然有效且速度更快。对于防止恶意篡改,应该使用 SHA256 或更强的哈希。现代软件发布(如 Linux ISO、Docker 镜像)通常同时提供 MD5 和 SHA256 校验和,建议使用 SHA256 进行验证以获得更高的安全保障。

立即尝试在线工具,无需安装,免费使用。

打开工具 →

立即免费使用相关工具

免费使用 →