DevToolbox
跳到主内容

哈希 / MD5 校验

MD5 / SHA-1 / SHA-256 · 批量文件 · 重复检测 · 清单比对

内存数据走 Web Crypto 加速
MD5SHA-1SHA-256
待计算内容
输入或粘贴文本,下方实时给出三种摘要
0 字符

计算结果

MD5

128待比对
速度快,广泛用于文件校验;已不适合用于安全场景

SHA-1

160待比对
已被证明存在碰撞,仅建议用于兼容旧系统

SHA-256

256待比对
推荐:完整性校验、签名、口令派生的事实标准

校验比对

粘贴官方公布的 MD5 / SHA-1 / SHA-256 值,自动判断文件是否一致

关于哈希 / MD5 校验

哈希(摘要)算法把任意长度的数据映射成固定长度的指纹,常用于验证文件是否被篡改或损坏。MD5 输出 128 位(32 个十六进制字符),SHA-1 输出 160 位(40 字符),SHA-256 输出 256 位(64 字符)。

本工具的 MD5、SHA-1、SHA-256 全部为纯 JavaScript 实现,不依赖 Web Crypto,因此在 http:// 这类非安全上下文(例如用局域网 IP 访问自建实例,此时 crypto.subtle 不可用)下同样能算,MD5 也只有自己实现才有。文件处理采用增量式分块读取(默认 4 MB 一块),内存占用与文件大小无关,几百 MB 到数 GB 的视频都能直接拖进来;一次读取可同时计算多个算法,避免重复读盘。

批量模式支持一次拖入整个文件夹,结果表格可筛选、可只看重复文件(相同哈希即内容完全相同),并能导出 CSV 或 `sha256sum -c` 可直接校验的清单。清单比对模式则用来验证大规模拷贝的结果:把拷贝前后的两份清单贴进来,自动标出内容变更、新增和缺失的文件。

常见问题

MD5 还能用吗?

用于文件校验可以,用于安全场景不行。MD5 已被证明存在碰撞攻击(可以构造出两个 MD5 相同但内容不同的文件),因此不能用于数字签名或口令存储;但下载站、网盘仍普遍提供 MD5 作为完整性校验值,所以本工具保留它。新项目建议使用 SHA-256。

几百 MB 甚至几 GB 的视频能算吗?

可以。文件按 4 MB 分块流式读取并逐块喂给哈希算法,内存占用与文件大小无关,只与耗时有关:纯 JavaScript 实现约 100–300 MB/s,1 GB 视频用 MD5 大约需要几秒,同时计算三个算法约需三倍时间。

两个文件哈希相同就一定是同一个文件吗?

MD5 与 SHA-1 存在已知碰撞,理论上可以构造出不同内容但哈希相同的文件;SHA-256 目前没有已知的实用碰撞。对于常规的文件去重与完整性校验,哈希相同即可认为内容一致;对抗性场景请使用 SHA-256 或 BLAKE3。

为什么同一个文件在不同工具里算出的哈希不一样?

先确认算法一致(MD5 与 SHA-256 完全不同),再确认比较的对象一致:文本的换行符(LF / CRLF)与末尾换行、文件是否被解压或重新保存都会改变哈希值。校验文件时应直接对原始文件计算,不要先解压再压回。