文件摘要

拖入文件分块读取算 MD5/SHA,大文件不占内存,可与下载站校验值比对。

从网上下载安装包时,站点通常会公布 SHA-256 或 MD5 校验值。把下载好的文件拖进这里,算出的摘要与公布值逐字一致,就说明文件完整、没有被篡改或下载出错。

整个过程在浏览器本地完成:文件不会被上传,也不会发起任何网络请求——校验的意义恰恰在于“不信任远端”,所以一切只在你这台机器上算。MD5 用内置实现分块流式计算,内存与文件大小无关;SHA-256/512 依赖 WebCrypto 的一次性摘要接口,需要先把整份文件读进内存,因此设有体积上限。

文件摘要怎么用

  • 拖入或选择:把文件拖到页面顶部那条 64px 高的虚线横条上,或点它、或按 Enter/空格(横条本身可聚焦),支持一次多选。每个文件出一张卡:卡头是省略号截断的文件名、大小与「移除」,卡内一张三行表放 MD5、SHA-256、SHA-512,长摘要只折行不撑表。「清空全部」另有一条。
  • 看进度:进度是卡里那条填充宽度按百分比画的横轨,旁边写着「读取中 43%」「完成」「失败」;三行表下面才是摘要。出错信息直接落在出问题那张卡里(「读取或摘要失败:…」),不再往页面顶部推,所以多文件时一眼能看出是哪个文件的事。
  • 比对校验值:把算出的十六进制摘要与下载站公布值对照,完全相同即通过完整性校验。移除一张卡会断开对那个 File 对象的引用,进行中的任务在下一个数据块边界收手,不会接着算一个你已经删掉的进度。

常见问题

是不是所有算法都“流式”、都不吃内存?

不是,这里说实话:MD5 用本项目自带的可增量实现,逐块喂入,几乎不占额外内存;但 WebCrypto 的 SHA 摘要接口不能流式,必须把整份文件读进内存一次性计算。

大文件会不会把浏览器撑爆?

所以 SHA 设了 256 MB 的上限:超过这个体积的文件只算 MD5,卡里 SHA-256/SHA-512 那两格写明「跳过(>256 MB)」,卡片下方另给一条提示说明为什么跳过,而不是悄悄给你一个看起来算完了的空值。

文件会被上传吗?

不会。页面不发起任何网络请求,文件内容只在浏览器内被读取和计算,关闭页面即消失。

对应功能编号 #38无需安装,手机端同样可用按 Ctrl + K 换工具