给一个文件算出固定长度的"指纹"。文件改动一个字节,指纹就完全变了。用途:
文件不上传,全部在浏览器本地读取和计算,断网也能用。
| 算法 | 长度 | 说明 |
|---|---|---|
| CRC32 | 8 hex | 只查传输错误,不防篡改 |
| MD5 | 32 hex | 快,但可被构造碰撞,只做非安全的快速比对 |
| SHA-1 | 40 hex | 已不安全,仅用于对接老系统 / Git |
| SHA-256 | 64 hex | 推荐,官方校验和的主流选择 |
| SHA-512 | 128 hex | 更长,安全性同级,某些场景要求 |
| RIPEMD160 | 40 hex | 比特币地址等特定场景 |
Q:几 GB 的文件能算吗? A:能。分块读取,内存占用只有一个块的大小。大文件耗时取决于算法和 CPU,SHA-256 通常每秒几百 MB。
Q:为什么和 Windows certutil / Linux sha256sum 结果要一致?
A:这些工具算的是文件原始字节的哈希,本工具也是,所以结果相同(注意别把换行符 CRLF/LF 不同的文本文件当成"同一个文件")。
Q:对比时大小写敏感吗? A:不敏感,工具会统一转小写再比。
Q:能校验文件夹吗? A:不能,浏览器只能逐个文件读取。可一次多选文件分别算。
Q:文件会上传吗? A:不会。用的是浏览器 File API 本地读取,计算在本机完成。