文件哈希校验
可与下方「校验期望值」比对;变更算法后需重新计算。
在浏览器中计算本地文件的 MD5、SHA-1、SHA-256、SHA-512 哈希值,可一键复制或粘贴官方期望值自动比对,适合下载校验、版本对比和电子证据取证。
相关推荐
什么是文件哈希?
文件哈希(File Hash)是把任意文件内容通过哈希算法映射成固定长度字符串的「数字指纹」。同一份文件每次计算都得到相同结果,内容任何改动都会让哈希值完全不同。
典型用途:①下载完成后对比官方哈希,确认文件没被篡改;②版本管理——Git / SVN 用 SHA-1 标识每次提交;③文件对比——快速判断两个文件是否相同;④数字取证——把文件哈希作为电子证据的完整性证明。
本工具支持的算法:MD5(128 位,已不抗碰撞)、SHA-1(160 位,已被 Google 公开碰撞)、SHA-256(256 位,主流推荐)、SHA-512 家族(512 位 / SHA-384 / SHA-512/256,安全性更高)。哈希和加密不同:哈希是单向的,不能从哈希值反推文件内容。
适用场景
- 下载软件、镜像、固件后,对比官网公布的 MD5 / SHA-256 哈希,确认文件没被植入后门或传输损坏。
- 发送大文件给同事前先算好哈希,让对方收到后再算一次并比对,确保传输过程没有损坏。
- 为合同、报价单、扫描件等电子证据生成 SHA-256 哈希存档,作为后续「未被篡改」的证明依据。
- 对比同一份素材的两个版本(修改前 / 修改后),先用哈希确认它们是否完全相同,再决定要不要重新分发。
- Git 仓库、备份包或镜像节点之间做一致性巡检:算一遍 SHA-256 就能快速判断各节点是否同步。
使用方法
- 点击上传区,选择本地任意文件(一次处理一个文件)。
- 工具自动开始计算哈希,进度条会实时显示百分比,文件越大等待时间越长。
- 查看右侧的哈希结果,根据需要切换算法、大写 / 小写或 SHA-512 系列细分变体。
- 把官方或对方提供的期望值粘贴到「校验期望值」输入框,工具会立刻显示匹配或不匹配。
- 点「复制哈希」按钮把结果保存到剪贴板,或点「重新计算」刷新当前文件。
功能特点
- 本地计算保护隐私:所有哈希运算都在当前浏览器中完成,文件不会上传到服务器。
- 四大主流算法:MD5、SHA-1、SHA-256、SHA-512,覆盖绝大多数下载校验和文件指纹场景。
- SHA-512 系列细分:可在 SHA-512、SHA-384、SHA-512/256 之间切换,匹配不同长度的期望值。
- 大写 / 小写一键切换:默认小写输出,对比 Windows 工具或官方大写哈希时勾选即可。
- 粘贴期望值自动比对:把官方提供的哈希粘贴到「校验期望值」输入框,立即显示匹配或不一致结果。
- 实时进度条:大文件分块读取计算,百分比实时更新,不卡死浏览器。
- 一键复制哈希值:计算完成后点复制按钮,结果直接进剪贴板,方便回填到校验表或聊天窗口。
最佳实践
校验下载文件优先用 SHA-256
官网公布的现代软件、Linux 发行版、容器镜像几乎都提供 SHA-256。MD5 只在官网明确给出 MD5 且你能确认来源可信时再用,避免因算法弱点承担不必要的风险。
对比时忽略哈希值的大小写
哈希算法本身没有大小写概念,工具默认输出小写,但 Linux / macOS 命令行多是小写,Windows 校验工具有时显示大写。遇到不一致先看是不是只是大小写不同,避免误判文件损坏。
哈希值应包含完整文件内容
压缩包、多文件归档、ISO 镜像要先在「完整状态」下计算哈希。如果先解压再哈希,只能证明「这一份解压后的内容」是对的,无法证明压缩包本身没问题。
电子证据场景同时存哈希和签名
SHA-256 哈希只能证明「文件完整性」,不能证明「谁发的」。需要对外作为电子证据时,最好在哈希之外再叠加发送方数字签名或可信第三方时间戳,单独哈希并不足以构成完整证据链。
超大文件或设备性能不够时换工具
本工具适合 GB 级别以下的常见文件。极端大文件或老旧设备上分块计算会很慢,此时更适合用本地 openssl dgst、certutil 或系统自带 sha256sum 在命令行快速完成。
需要带密钥的完整性校验时改用 HMAC
文件哈希只校验内容完整性,不校验发送方身份。如果你要确认「这份文件来自我信任的来源且没被篡改」,应该用 HMAC 生成器配合共享密钥做哈希链,而不是普通文件哈希。
常见问题
MD5 和 SHA-256 怎么选?
日常下载校验、版本对比、文件去重选 SHA-256 更稳。MD5 只在对方只提供 MD5、或你确认场景不涉及安全(例如本地文件去重)时再用。安全敏感场景(电子证据、固件校验)请坚持用 SHA-256 及以上。
哈希值大小写不一致算校验失败吗?
不算。哈希算法本身没有大小写概念,只是展示方式不同。本工具默认输出小写,遇到大写期望值时勾选「大写输出」再算一次即可。比较时请忽略大小写,只看字符本身是否完全一致。
为什么我的哈希值和官方公布的不一致?
常见原因:①下载过程中文件损坏,重新下载;②你下载的版本和官方哈希对应的版本不一致(核对版本号、文件名、分卷编号);③你只算了压缩包的一部分内容;④官方公布的是另一种算法(如你用了 MD5,对方公布的是 SHA-256)。
这个工具支持 SHA-224、BLAKE2、SM3 吗?
目前支持 MD5、SHA-1、SHA-256,以及 SHA-512 系列(SHA-512、SHA-384、SHA-512/256)。暂不支持 SHA-224、BLAKE2、SM3 等算法。如果你需要这些算法,建议改用本地命令行工具(openssl、sha256sum 等)。
文件会上传到服务器吗?安全吗?
不会。本工具使用 crypto-js 在浏览器本地分块计算哈希,文件内容始终留在你的设备和浏览器内存里,不发送到任何远程服务器。处理敏感文档、合同、固件都可以放心使用。
一次能算多个文件吗?
当前页面一次处理一个文件。如果需要批量校验,可以重复操作,或换用本地命令行工具(Windows 上 certutil -hashfile,macOS / Linux 上 md5sum / shasum)一次列出多个文件哈希。
SHA-512 和 SHA-384 应该选哪个?
对方明确提供 SHA-384 时选 SHA-384;其他需要「更安全」的场景默认选 SHA-512。SHA-512/256 输出长度和 SHA-256 一样(64 字符),但内部用 SHA-512 压缩函数,适合在限制输出长度的系统里获得更强的抗碰撞能力。
哈希和数字签名有什么区别?
哈希只验证「文件内容是否完整」,无法证明「是谁发的」。数字签名 = 哈希 + 用发送方私钥加密,验签方用公钥解密就能同时验证完整性和发送方身份。需要证明来源时,应在哈希之外再做一次签名校验。
大文件哈希会卡住浏览器吗?
本工具使用 2MB 分块流式读取,常见几十 MB 到几百 MB 文件都能正常完成。GB 级别以上或设备性能较弱时,计算时间会明显变长;如果你只是命令行下做这类大文件校验,建议改用系统自带或 openssl 工具。
故障排查
哈希值和官方公布的不一致
先确认你下载的就是官方提供哈希的那个版本(文件名、版本号、分卷编号都要核对),然后再检查大小写是否一致、是否算的是完整文件。如果都一致仍不匹配,重新下载一次,下载过程中文件可能被损坏。
大文件计算很慢
本工具对大文件使用 2MB 分块流式计算。几百 MB 内通常秒级完成。GB 级别以上建议改用命令行:Windows 上 certutil -hashfile <文件名> SHA256,macOS / Linux 上 shasum -a 256 <文件名>。
勾选大写后哈希值变了
哈希值本身没变,只是字母被改成大写。比对时请忽略大小写,或把期望值也统一成同一种大小写再比较。
切算法后结果没有刷新
切换算法或大写 / 小写后,工具会自动重新计算当前文件。如果没有刷新,点「重新计算」按钮强制再算一次。
术语表
- MD5
- 输出 128 位(32 字符十六进制)的哈希算法。速度快但已不再抗碰撞(2004 年王小云团队攻破),适合做文件指纹或去重,不应用于安全敏感场景。
- SHA-1
- 输出 160 位(40 字符十六进制)。2017 年 Google 公开 SHA-1 碰撞,主流浏览器和系统已停止推荐使用,但 Git 旧历史仍依赖它。
- SHA-256
- SHA-2 家族成员,输出 256 位(64 字符十六进制)。目前主流推荐算法,HTTPS、Bitcoin、Git 新仓库等都在使用。
- SHA-512
- 输出 512 位(128 字符十六进制),比 SHA-256 抗碰撞能力更强,长文件上略快。本工具同时支持 SHA-384(96 字符)和 SHA-512/256(64 字符,与 SHA-256 等长但内部用 SHA-512 压缩函数)。
- 十六进制(Hex)
- 哈希值最常见的展示形式,由 0-9 和 a-f 组成,每字节占 2 个字符。本工具支持大写或小写切换。
- 碰撞(Collision)
- 两个不同文件生成完全相同的哈希值。抗碰撞能力是衡量哈希算法安全性的核心指标,MD5 和 SHA-1 已被证明存在实用碰撞。
- 本地计算
- 所有哈希运算都在当前浏览器和设备内存中完成,文件内容不会上传到远程服务器,适合校验敏感文档。
本工具支持的算法对比
选择算法时优先看对方提供了哪种哈希,以及你是否在安全敏感场景。
| 算法 | 输出长度 | 安全性 | 典型场景 |
|---|---|---|---|
MD5 | 128 位 / 32 字符 | 弱(碰撞已攻破) | 本地去重、旧版本兼容 |
SHA-1 | 160 位 / 40 字符 | 弱(碰撞已攻破) | Git 历史兼容 |
SHA-256 | 256 位 / 64 字符 | 强 | 下载校验、固件、证据(推荐) |
SHA-384 | 384 位 / 96 字符 | 强 | 高安全需求、协议规定 |
SHA-512 | 512 位 / 128 字符 | 更强 | 高安全需求 |
SHA-512/256 | 256 位 / 64 字符 | 强 | 需要 SHA-256 长度但想用 SHA-512 内核 |
不同场景下的算法推荐
同一份文件在不同使用场景下,最合适的算法并不相同。
| 使用场景 | 推荐算法 | 核心价值 |
|---|---|---|
| 下载软件 / 镜像 / 固件校验 | SHA-256 | 通用、官方普遍支持 |
| Git 提交指纹 | SHA-1 | 与历史兼容 |
| 本地文件去重 | MD5 | 速度快、低风险 |
| 电子证据取证 | SHA-256 + 签名 | 哈希加签名,司法更稳 |
| 传输一致性核对 | SHA-256 | 双方都能算,比对简单 |
| 需要协议规定长度 | SHA-384 / SHA-512/256 | 满足协议约束 |
Authoritative References
- 安全字符串比较
- 二进制编码解码
- 凯撒密码
- 摩尔斯电码
- 十六进制编码解码
- 视频转 Base64
- Base64 转视频
- 图片转 Base64
- Base64 转图片
- 文本转 Base64
- Base64 转文本
- 文件哈希校验
- 文件转 Base64
- Base64 转文件
- 音频转Base64
- Base64转音频
- AES 加密解密
- DES 加密解密
- Base32 编码解码
- Base58 编码解码
- Base64 编码
- Base64 解码
- Base64 比较
- Base64 拆分
- Base64 多行合并
- Base64 格式化
- Base64 格式校验
- Base64 批量编码
- Base64 批量解码
- Base64 清理
- Base64 填充处理
- Base64 长度统计
- Base64 转十六进制
- Base64 DataURL 转换
- Base64-Hex 互转
- Base85 编码解码
- HMAC 生成与验证
- PBKDF2 密钥派生
- MD5 哈希值
- SHA-256 哈希
- SHA1 哈希
- SHA512 哈希
- JWT 解码、验证与生成
- HTML 编码解码
- Unicode 转义
- URL 编码
- URL Safe Base64
- MIME Base64
- Java 代码混淆
- JavaScript 代码混淆
- PHP 混淆
- Python混淆