#️⃣ SHA 哈希计算器
使用浏览器 Web Crypto 计算文本摘要。输入内容和哈希结果只在本地处理,不上传服务器。
文件在浏览器内读取并按上方选择的算法计算,不会上传。超大文件会占用较多内存,建议优先用于几百 MB 以内的文件。
请选择算法后计算
作者:kaenfsk · 更新于 2026 年 10 月 12 日 · 内容与维护标准
哈希摘要解决什么问题
哈希函数把任意长度的输入映射为固定长度的摘要。相同输入总是得到相同摘要,输入只要发生一个字符的变化,结果就会明显不同。它常用于校验文件是否完整、比较内容是否一致、生成缓存键、构建去重标识以及排查接口数据差异。哈希值本身不是原始内容,通常也不能从摘要反推出完整输入。
本工具计算的是文本的原始字节摘要,不会自动加盐、加时间戳或进行密钥运算。因此它适合做完整性校验,不适合直接用来存储用户密码。密码存储应使用专门的密码哈希算法,并为每个用户配置独立随机盐值。
哈希、加密和编码不是一回事
| 概念 | 是否有密钥 | 能否还原 | 常见用途 |
|---|---|---|---|
| 哈希 | 通常没有 | 不可逆,理论上可能发生碰撞 | 完整性校验、内容指纹、去重 |
| 加密 | 需要密钥 | 有密钥时可以还原 | 机密性保护、传输加密 |
| 编码 | 不需要密钥 | 可以还原 | Base64、URL 编码、数据格式转换 |
把哈希当作加密是最常见的概念误区。哈希不能隐藏低熵内容,像手机号、身份证号、简单密码这类取值范围有限的数据,攻击者可以通过枚举常见值并与摘要比对。只对内容做一次普通哈希,并不等于完成脱敏。
支持的算法怎么选
- SHA-256:当前通用场景的默认选择,输出 64 个十六进制字符,兼容性和安全性平衡较好。
- SHA-512:输出 128 个十六进制字符,适合需要更长摘要或特定协议要求的场景。
- SHA-384:SHA-512 的截断版本之一,常见于高安全等级协议和证书体系。
- SHA-1:已经不具备抗碰撞安全性,只建议在必须兼容旧接口时计算,不建议用于新系统或签名。
推荐的使用流程
- 确认输入文本的编码。本站统一按 UTF-8 编码字节,换行和空格也属于输入内容。
- 选择与目标系统一致的算法。只比较摘要时,算法不一致会得到完全不同结果。
- 复制完整摘要,避免截断前导零或误删字符。
- 把结果与可信来源比对;若用于文件校验,应通过 HTTPS 等可信渠道获取官方摘要。
- 如果用于密码存储,请改用 Argon2id、scrypt、bcrypt 等带盐且可调成本的方案。
常见用途与注意事项
校验下载文件是否损坏
把官方发布的 SHA-256 摘要与本地计算结果对照,可以判断文件是否被截断或修改。但如果摘要本身也来自被篡改的页面,校验就不能提供任何安全保障,因此下载来源和下载站点的可信度同样重要。
比较两段文本是否一致
哈希能快速判断差异,但它不告诉你差异在哪里。需要定位具体修改时,应使用文本对比工具或版本控制系统的 diff。对于极小概率的哈希碰撞,普通校验场景通常可以接受,安全决策则要结合算法和威胁模型。
构建缓存键或内容指纹
把规范化后的内容计算哈希,可以作为缓存键或资源指纹。缓存键设计要固定字段顺序、空白处理和编码规则,否则同一业务数据可能生成多个不同摘要,导致缓存命中率下降。
为什么不能直接哈希用户密码?
普通哈希计算速度快,攻击者可以高效枚举常见密码。密码存储应使用专门的密码哈希算法,为每个用户使用独立盐值,并根据服务器能力设置合理的计算成本。哈希工具可以用于校验数据完整性,但不能替代密码存储方案。
文件哈希的命令行核对方法
下载官方文件后,除了在页面中选择文件计算,也可以用操作系统自带命令独立核对。关键是算法和文件路径必须一致,输出通常不区分大小写。若两个结果不同,先确认没有下错文件、算错算法或把摘要复制残缺,再检查文件是否被下载工具、代理或磁盘错误破坏。
| 系统 | 命令示例 | 用途 |
|---|---|---|
| Windows PowerShell | Get-FileHash .\file.iso -Algorithm SHA256 | 输出 Hash 与 Algorithm 字段 |
| Linux | sha256sum file.iso | 输出摘要和文件名 |
| macOS | shasum -a 256 file.iso | 兼容系统自带 Perl 脚本 |
文件哈希对不上的排查顺序
- 确认下载页面给出的算法确实是 SHA-256,而不是 MD5、SHA-1 或 SHA-512。
- 核对官方摘要是否属于当前版本、当前平台和当前文件,而不是同名旧包。
- 重新下载或换镜像后重算,避免下载中断、代理篡改和传输损坏。
- 使用官方签名或可信发布渠道验证摘要来源;摘要和文件都来自同一被篡改页面时,校验不能证明安全。
- 仍不一致时记录文件名、大小、算法和两个摘要,再联系发布方。
隐私说明
所有计算都通过浏览器原生 Web Crypto API 在当前页面完成。本站代码不会上传输入内容,不会把它写入 Cookie 或 localStorage。页面会加载 Google AdSense 脚本,但广告服务不会读取输入框内容。关闭或刷新页面后,输入与结果都会消失。