Skip to content
DocsAll
教程

文件哈希校验:MD5、SHA256 完整性验证

DocsAll 团队 · 发布于 2026年6月30日 · 更新于 2026年7月12日
哈希MD5SHA256

什么是文件哈希

哈希(Hash)是把任意长度数据变成固定长度字符串的算法。文件哈希是文件的"指纹"——同一文件哈希值唯一,文件改一个字节哈希值就变。

常见用途:

  • 验证文件完整性(下载是否完整)
  • 防篡改(文件是否被修改)
  • 去重(两个文件是否相同)
  • 密码存储(存哈希不存明文)

常见哈希算法

MD5

  • 输出 128 位(32 位十六进制字符串)
  • 速度快
  • 已被破解,存在碰撞(不同文件相同哈希)
  • 不适合安全场景
  • 仍用于完整性校验(非安全场景)

SHA-1

  • 输出 160 位(40 位十六进制字符串)
  • 速度中等
  • 已被破解,存在碰撞
  • 不推荐用于安全场景
  • Git 早期用 SHA-1,现迁移到 SHA-256

SHA-256

  • 输出 256 位(64 位十六进制字符串)
  • 速度较慢
  • 安全,目前无碰撞
  • 推荐用于安全场景
  • 区块链、HTTPS 证书都用 SHA-256

SHA-512

  • 输出 512 位(128 位十六进制字符串)
  • 速度慢
  • 安全性比 SHA-256 更高
  • 适合高安全场景

选择建议

  • 完整性校验(非安全):MD5 够用(快)
  • 安全场景:SHA-256(平衡安全和速度)
  • 高安全场景:SHA-512
  • 不推荐:SHA-1(已破解)

哈希校验的原理

生成哈希

  1. 读取文件全部内容
  2. 用哈希算法计算
  3. 输出固定长度字符串

校验过程

  1. 下载文件时获取官方哈希值
  2. 本地计算文件哈希值
  3. 对比两个哈希值
  4. 相同 = 文件完整,不同 = 文件损坏或被篡改

为什么能校验完整性

哈希算法的特性:

  • 同一输入永远得到同一输出
  • 不同输入几乎不可能得到同一输出(碰撞概率极低)
  • 输入改一个字节,输出完全不同(雪崩效应)

所以文件哪怕改一个字节,哈希值也完全不同。

使用场景

下载校验

下载大文件(系统镜像、软件安装包)时,官方提供哈希值。下载后本地算哈希对比,确认下载完整没损坏。

防篡改

重要文件(合同、证据)生成哈希存档。日后验证文件是否被修改。

文件去重

两个文件哈希相同,内容就相同(碰撞概率极低)。用哈希判断文件是否重复,比逐字节对比快。

密码存储

网站存用户密码的哈希值,不存明文。登录时算输入密码的哈希对比。即使数据库泄露,攻击者也拿不到明文密码。

数字签名

数字证书用哈希 + 加密验证文件来源和完整性。

如何校验文件哈希

用 DocsAll 校验

文件哈希工具

  1. 上传文件
  2. 工具计算 MD5、SHA-1、SHA-256
  3. 显示哈希值
  4. 和官方哈希对比

浏览器端计算,文件不上传。

Windows 命令行

certutil -hashfile 文件名 SHA256

Mac/Linux 命令行

shasum -a 256 文件名
md5 文件名

对比哈希

  • 复制官方哈希值
  • 粘贴到对比框
  • 工具自动对比
  • 或手动逐字符对比

常见问题

哈希值不一样怎么办

  • 下载不完整:重新下载
  • 文件被篡改:从可信来源重新下载
  • 哈希算法不同:确认用同一种算法对比

MD5 还能用吗

  • 完整性校验(非安全场景):能用
  • 安全场景(防篡改、密码):不推荐,用 SHA-256
  • 碰撞风险:有人能构造两个不同文件有相同 MD5

哈希能反推原文吗

不能。哈希是单向函数。从哈希值无法还原原文。所以存密码哈希安全(即使泄露也拿不到明文)。

大文件哈希慢

  • 哈希要读取整个文件
  • 大文件(几 GB)计算需要时间
  • 正常现象,耐心等待

哈希值大小写

哈希值是十六进制字符串,大小写不影响(a 和 A 等价)。对比时忽略大小写。

安全提示

用可信来源的哈希值

从官方网站、可信渠道获取哈希值。别用来源不明的哈希值校验,可能被攻击者替换。

用强哈希算法

安全场景用 SHA-256 或更高。MD5 和 SHA-1 已不安全。

哈希不等于加密

哈希是单向的,不能解密。加密是双向的,能解密。别把哈希当加密用。

加盐哈希

存密码时用加盐哈希(salt + password 再哈希),防止彩虹表攻击。

用 DocsAll 计算哈希

文件哈希工具

  1. 上传文件
  2. 自动计算 MD5、SHA-1、SHA-256、SHA-512
  3. 显示所有哈希值
  4. 复制需要的哈希值
  5. 和官方对比

浏览器端计算,文件不上传服务器。

小结

文件哈希是文件指纹,用于完整性校验和防篡改。MD5 快但已破解,SHA-256 安全推荐。校验时从可信来源获取哈希值,用同种算法对比。DocsAll 文件哈希工具 浏览器端运行,文件不外传。

D
DocsAll 团队 DocsAll 编辑团队

DocsAll 编辑团队,由产品经理、工程师和内容编辑组成,致力于分享实用的办公文档处理技巧。