MD5哈希值生成器

生成与md5sumopenssl dgst -md5certutil -hashfile完全一致的32位十六进制MD5校验和,在下载页面显示MD5值时尤为实用,可无需安装命令行工具即可验证文件匹配性。支持文本输入(按 UTF-8 字节格式处理,与Unix工具兼容)和文件输入(采用流式处理方式,即使大型文件也能轻松在内存中处理)。

如何验证文件校验和

  1. 1

    拖入已下载的文件

    该工具会以数据块的形式将其送入MD5函数进行流式处理。

  2. 2

    等待摘要生成

    在大多数设备上速度约为几MB/s;一个500 MB的ISO文件需要约30至60秒。

  3. 3

    与已发布的校验和进行比较

    复制并粘贴预期的哈希值。该工具会用颜色标示匹配/不匹配的情况。

  4. 4

    若不匹配,请勿运行

    不同的哈希值表明文件已损坏或被篡改。请从可信来源重新下载。

标准输出格式

MD5算法生成128位结果,通常以小写字母表示的32个十六进制字符形式呈现:

9e107d9d372bb6826bd81d3542a419d6

Unix系统下的md5sum输出格式为:<hash> <filename>后接两个空格。GNU核心工具集要求-c(检查)标志采用此格式。

文本模式与文件模式

  • 文本输入在哈希处理前均采用 UTF-8 编码,这与Unix系统中的echo -n "text" | md5sum一致;而Windows PowerShell的Get-FileHash默认采用 UTF-16 编码(除非用户指定其他编码),因此两者可能不一致。
  • 文件输入采用逐字节哈希处理,无论文件内容如何,均不进行编码转换。您的浏览器与命令行工具始终会得出相同的文件哈希值。

匹配已发布的校验和

大多数下载页面会将哈希值与文件名一同显示:

md5sum: 9e107d9d372bb6826bd81d3542a419d6  yourfile.iso

请确保下载了正确的文件(有时厂商会为不同架构版本提供不同的哈希值: x86_64 与ARM)。

  • 请信任校验和来源。同一被攻破页面上的MD5链接毫无价值;如可获取,请与 GPG 签名的SHA256SUMS文件进行交叉验证。

不匹配的常见原因

  • 部分下载,浏览器中断,下载未正确继续。
  • 版本不同,镜像上的版本与校验和承诺的版本不一致。
  • 选择错误的文件(您选择了.sig文件而非ISO文件)。
  • 压缩或重新格式化.tar.gz文件与同一提取目录中的文件具有完全不同的哈希值。
  • 实际篡改,虽罕见,但正是校验和存在的原因。

速度

MD5算法运行速度极快。过去五年生产的笔记本电脑其哈希计算速度可达400+ MB/s。浏览器中对文件进行哈希处理时的瓶颈通常在于磁盘I/O操作,而非数学计算本身。

当 MD5 不足以满足需求时

对于涉及安全性的完整性验证(即确认下载的安装程序未被恶意软件替换),建议使用SHA-256,因为MD5碰撞值极易计算。大多数现代项目都会同时发布这两种哈希值。

常见问题

PowerShell 的 Get-FileHash 默认使用 SHA-256而非 MD5。请使用 Get-FileHash -Algorithm MD5 file.iso 以匹配已发布的 MD5 值。

大多数现代浏览器都能流畅地传输高达约2GB的文件。对于较大文件(如DVD或磁盘镜像),建议使用命令行工具,Linux系统可使用md5sum file,Windows系统则可使用Get-FileHash -Algorithm MD5

.md5文件通常仅包含一行内容:十六进制哈希值后接两个空格以及文件名。诸如md5sum -c checksum.md5之类的工具可读取该行并进行验证;仅其十六进制部分即构成原始哈希值。

是的,MD5碰撞值完全可以人为制造;而真实文件之间发生偶然碰撞的概率约为1/2^64,几乎不可能;若需实现抗攻击性碰撞防护,请使用SHA-256。

不。哈希处理完全通过 WebCrypto API 和类型化数组块在您的浏览器中完成,文件从未离开您的设备。

相关工具

此工具还提供其他语言版本