文件哈希生成器
为任意文件生成 SHA-256、SHA-1 和 MD5 校验值。可粘贴预期哈希值进行完整性校验。
所有文件在浏览器本地处理,不上传到服务器。
拖拽文件到此处,或点击选择
支持任意格式 · 最大 500 MB
工作原理
Web Crypto API
SHA-256 和 SHA-1 由浏览器内置的 SubtleCrypto.digest() 计算,速度快且结果可信。
MD5 纯 JS 实现
Web Crypto API 不支持 MD5(因其安全性不足),本工具内置纯 JS 实现,结果符合 RFC 1321。
文件不离开设备
所有哈希计算在浏览器本地完成,文件不上传服务器,隐私完全保留。
一键校验完整性
粘贴来自官网或发布页的预期哈希值,自动对比,立即得出匹配或不匹配结果。
算法对比
| 算法 | 输出位数 | Hex 长度 | 安全性 | 典型用途 |
|---|---|---|---|---|
| SHA-256 | 256 bits | 64 chars | 安全 | 验证软件下载、数字签名、文件完整性校验 |
| SHA-1 | 160 bits | 40 chars | 已过时 | Git commit ID、老旧系统兼容、非安全校验 |
| MD5 | 128 bits | 32 chars | 不安全 | 文件传输校验、数据库 Etag、非安全指纹 |
命令行等效操作
对于超大文件或自动化流程,命令行工具更合适:
| 环境 | 命令 |
|---|---|
| Linux / macOS (SHA-256) | sha256sum filename.zip |
| Linux / macOS (MD5) | md5sum filename.zip |
| macOS (MD5 alternative) | md5 filename.zip |
| Windows (SHA-256) | certutil -hashfile filename.zip SHA256 |
| Windows (MD5) | certutil -hashfile filename.zip MD5 |
| Node.js (SHA-256) | require('crypto').createHash('sha256').update(fs.readFileSync('f')).digest('hex') |
| Python (SHA-256) | import hashlib; hashlib.sha256(open('f','rb').read()).hexdigest() |
相关工具
常见问题
应该选哪种哈希算法?
验证软件下载、数字签名等安全场景请选 SHA-256。SHA-1 仍出现在老旧系统中,但 2017 年后已不被视为密码学安全。MD5 适合文件去重、缓存 key 等非安全校验,绝对不能用于身份认证或数字签名。
文件会被上传到服务器吗?
不会。SHA-256 和 SHA-1 使用浏览器内置的 Web Crypto API(SubtleCrypto.digest)计算,MD5 由纯 JavaScript 实现。整个过程在本地完成,文件不会离开你的设备。
怎么用这个工具验证下载的文件?
下载文件后,拖入本工具。从软件官网或发布页复制预期的 SHA-256 值,粘贴到"校验哈希"输入框,选择 SHA-256。绿色表示文件与官方发布完全一致;不匹配则说明文件可能损坏或被篡改。
支持最大多大的文件?
最大 500 MB。整个文件会以 ArrayBuffer 形式读入内存后再计算哈希,实际上限取决于可用内存。超大文件建议使用命令行工具:Linux/macOS 用 sha256sum,Windows 用 certutil。
Web Crypto API 为什么不支持 MD5?
MD5 被刻意排除在外,因为它在密码学上已被攻破——碰撞攻击已经可以实用化。本工具内置纯 JS 的 MD5 实现,输出结果符合 RFC 1321,但请不要将 MD5 用于任何安全目的。
能对文本字符串而不是文件计算哈希吗?
本工具对文件的原始字节计算哈希。如果要对文本计算,把文本保存成 .txt 文件拖入即可。哈希结果覆盖内容的原始 UTF-8 字节,和大多数命令行工具的行为一致。