🔐 文件哈希生成器

MD5 / SHA-1 / SHA-256 / SHA-512 / CRC32 · 纯本机计算 · 文件不上传
📤
点击选择文件,或把文件拖到这里
任意格式,可一次多选;整份文件都在这台电脑上算,一个字节都不上传
计算算法
💡 对方给什么指纹就勾什么算法;SHA-512 计算明显更慢,大文件按需再勾
🔐 还没有文件,点击上方区域添加吧
🔎 校验:把对方给的指纹贴进来
支持带 SHA-256: 这样的前缀,一行一条、逗号或空格分隔都行;按长度自动认出算法(32 位=MD5,40 位=SHA-1,64 位=SHA-256,128 位=SHA-512,8 位=CRC32)
会跟列表里的每个文件逐条对照
🔤 算一段文字的指纹
核对配置片段、脚本内容之类的小段文字时用得着;按 UTF-8 编码计算,跟命令行 sha256sum 的结果一致
🔒
文件不上传整份文件只在本机浏览器里算,页面不向任何服务器发送内容
⚡
原生加速SHA-1 / SHA-256 / SHA-512 优先用浏览器自带的哈希接口,本机实测 SHA-256 有 170~310 MB/s
🧵
多线程并行最多同时开 4 个后台线程,一批大文件可以并行算,不用排着队一个个来
🔎
拿来核对贴上对方公布的指纹,一眼看出文件是完整的还是被改过
📋
随手带走每个指纹都能单独复制,也能整份导出成 txt 报告
使用说明与常见问题

拿到指纹以后,怎么核对下载的文件?

三步:① 在上面的「校验」框里把对方公布的指纹粘进去(带不带 SHA-256: 前缀都行);② 点「比对」;③ 每个文件旁边会直接写明「一致」还是「不一致」。一致说明文件和你手上的原件是同一份;不一致说明下载过程中损坏、被改动过,或者对方给的根本不是这份文件的指纹。

MD5 和 SHA-256,选哪个?

对方给哪个就选哪个,这两种最常见。MD5 是老格式,兼容性最好,但已经被证明能造出「不同内容、同一指纹」的碰撞,只能用来发现意外损坏,不能用来防伪造。SHA-256 是现在发布方给得最多的,没有已知的碰撞攻击,对付篡改更靠得住。

CRC32 又是什么?

CRC32 不是加密哈希,只是一个查错码:文件在传输中错了一位,它几乎肯定会变。它快得多,但撞上的概率也高得多,只适合判断「下载有没有传坏」,别拿它判断「有没有被人改过」。

为什么 SHA-512 明显更慢?

它每轮要处理的运算比 SHA-256 多一倍,网页里的 JavaScript 处理 64 位整数又特别费劲,所以它是几个算法里最拖后腿的。文件不大时它能走浏览器原生接口(本机实测 SHA-1 / SHA-256 / SHA-512 都在 170 MB/s 以上,SHA-256 约 170~310 MB/s);可文件一大就只能用脚本算,这时 SHA-512 会把整体进度拖慢(本机实测约 1.5 MB/s,比纯脚本算 SHA-256 慢二十多倍)。行里会实时显示当前速度,用不着猜。日常核对下载文件,MD5 或 SHA-256 就够了。

文件会上传到服务器吗?

不会。整个页面是单个 HTML 文件,计算全部发生在你的浏览器里,文件内容一个字节都没有发出去。刷新页面、关掉标签页,文件都不会留在任何地方。算一段文字的指纹也一样,那段文字不会离开这台机器。(本站只统计页面被打开的次数,用的是一个 1×1 像素的计数请求,里面不含任何文件内容。)

慢,是不是在偷偷上传我的文件?

不是。算哈希本来就费 CPU,跟网速快慢没关系:文件多大,就得把它每个字节过一遍数学运算,一个字节都省不掉。整个过程在你自己的电脑上完成,算完就结束,没有一个字节发到网上去。

慢的根源在「用脚本一步步算」,所以这一版做了几件事:SHA-1 / SHA-256 / SHA-512 优先调用浏览器自带的原生哈希接口(本机实测 SHA-256 约 170~310 MB/s,比纯脚本的 30 多 MB/s 快五到十倍);大文件拆到最多 4 个后台线程同时算;MD5、CRC32 的算法本身也重写优化过。同一台机器上,4 个 300 MB 的文件(合计 1.2 GB)默认算 MD5 + SHA-256 + CRC32,旧版要 98 秒,新版 17~21 秒(机器忙的时候慢一点)。

能算多大的文件?

没有写死的上限。大文件是分块读的,一次只拿 4 MB 进内存,所以 10 GB 的文件也是慢慢算完,不会把内存撑爆。SHA-1 / SHA-256 / SHA-512 在文件不大时(最多 256 MB,按机器内存算)会改用原生接口,这时整份文件要放进内存;再大就自动改回 4 MB 分块读。真正的限制是时间:文件越大越慢,页面会实时显示已读进度和速度。点「⛔ 停止」可以随时中断,已经算完的结果保留。

结果里的十六进制是大写还是小写?

小写。指纹只认字符本身,字母大小写不影响结果,比对时也会自动忽略大小写和空格。

同一个文件重复添加会怎样?

同名同大小已经算过的话会被点出来,不会默默算两遍。列表里的每一行都可以单独删掉,也可以一键清空。

松手就开始计算指纹