#️⃣ SHA 哈希计算器

使用浏览器 Web Crypto 计算文本摘要。输入内容和哈希结果只在本地处理,不上传服务器。

文件在浏览器内读取并按上方选择的算法计算,不会上传。超大文件会占用较多内存,建议优先用于几百 MB 以内的文件。

等待输入...

请选择算法后计算

作者:kaenfsk · 更新于 2026 年 10 月 12 日 · 内容与维护标准

哈希摘要解决什么问题

哈希函数把任意长度的输入映射为固定长度的摘要。相同输入总是得到相同摘要,输入只要发生一个字符的变化,结果就会明显不同。它常用于校验文件是否完整、比较内容是否一致、生成缓存键、构建去重标识以及排查接口数据差异。哈希值本身不是原始内容,通常也不能从摘要反推出完整输入。

本工具计算的是文本的原始字节摘要,不会自动加盐、加时间戳或进行密钥运算。因此它适合做完整性校验,不适合直接用来存储用户密码。密码存储应使用专门的密码哈希算法,并为每个用户配置独立随机盐值。

哈希、加密和编码不是一回事

概念是否有密钥能否还原常见用途
哈希通常没有不可逆,理论上可能发生碰撞完整性校验、内容指纹、去重
加密需要密钥有密钥时可以还原机密性保护、传输加密
编码不需要密钥可以还原Base64、URL 编码、数据格式转换

把哈希当作加密是最常见的概念误区。哈希不能隐藏低熵内容,像手机号、身份证号、简单密码这类取值范围有限的数据,攻击者可以通过枚举常见值并与摘要比对。只对内容做一次普通哈希,并不等于完成脱敏。

支持的算法怎么选

  • SHA-256:当前通用场景的默认选择,输出 64 个十六进制字符,兼容性和安全性平衡较好。
  • SHA-512:输出 128 个十六进制字符,适合需要更长摘要或特定协议要求的场景。
  • SHA-384:SHA-512 的截断版本之一,常见于高安全等级协议和证书体系。
  • SHA-1:已经不具备抗碰撞安全性,只建议在必须兼容旧接口时计算,不建议用于新系统或签名。

推荐的使用流程

  1. 确认输入文本的编码。本站统一按 UTF-8 编码字节,换行和空格也属于输入内容。
  2. 选择与目标系统一致的算法。只比较摘要时,算法不一致会得到完全不同结果。
  3. 复制完整摘要,避免截断前导零或误删字符。
  4. 把结果与可信来源比对;若用于文件校验,应通过 HTTPS 等可信渠道获取官方摘要。
  5. 如果用于密码存储,请改用 Argon2id、scrypt、bcrypt 等带盐且可调成本的方案。

常见用途与注意事项

校验下载文件是否损坏

把官方发布的 SHA-256 摘要与本地计算结果对照,可以判断文件是否被截断或修改。但如果摘要本身也来自被篡改的页面,校验就不能提供任何安全保障,因此下载来源和下载站点的可信度同样重要。

比较两段文本是否一致

哈希能快速判断差异,但它不告诉你差异在哪里。需要定位具体修改时,应使用文本对比工具或版本控制系统的 diff。对于极小概率的哈希碰撞,普通校验场景通常可以接受,安全决策则要结合算法和威胁模型。

构建缓存键或内容指纹

把规范化后的内容计算哈希,可以作为缓存键或资源指纹。缓存键设计要固定字段顺序、空白处理和编码规则,否则同一业务数据可能生成多个不同摘要,导致缓存命中率下降。

为什么不能直接哈希用户密码?

普通哈希计算速度快,攻击者可以高效枚举常见密码。密码存储应使用专门的密码哈希算法,为每个用户使用独立盐值,并根据服务器能力设置合理的计算成本。哈希工具可以用于校验数据完整性,但不能替代密码存储方案。

文件哈希的命令行核对方法

下载官方文件后,除了在页面中选择文件计算,也可以用操作系统自带命令独立核对。关键是算法和文件路径必须一致,输出通常不区分大小写。若两个结果不同,先确认没有下错文件、算错算法或把摘要复制残缺,再检查文件是否被下载工具、代理或磁盘错误破坏。

系统命令示例用途
Windows PowerShellGet-FileHash .\file.iso -Algorithm SHA256输出 Hash 与 Algorithm 字段
Linuxsha256sum file.iso输出摘要和文件名
macOSshasum -a 256 file.iso兼容系统自带 Perl 脚本

文件哈希对不上的排查顺序

  1. 确认下载页面给出的算法确实是 SHA-256,而不是 MD5、SHA-1 或 SHA-512。
  2. 核对官方摘要是否属于当前版本、当前平台和当前文件,而不是同名旧包。
  3. 重新下载或换镜像后重算,避免下载中断、代理篡改和传输损坏。
  4. 使用官方签名或可信发布渠道验证摘要来源;摘要和文件都来自同一被篡改页面时,校验不能证明安全。
  5. 仍不一致时记录文件名、大小、算法和两个摘要,再联系发布方。

隐私说明

所有计算都通过浏览器原生 Web Crypto API 在当前页面完成。本站代码不会上传输入内容,不会把它写入 Cookie 或 localStorage。页面会加载 Google AdSense 脚本,但广告服务不会读取输入框内容。关闭或刷新页面后,输入与结果都会消失。

参考资料

📚 相关阅读

哈希、加密与编码有什么区别:SHA-256 实战指南 →

密码强度与随机密码生成:账号安全实用指南 →