SHA 哈希

本地处理

计算文本或文件的 SHA 摘要,支持 HMAC 消息认证码。

0

使用指南

工具介绍

下载校验、接口签名、内容指纹都会用到 SHA 摘要。这个页面输入文本或选中文件,一次算出 SHA-1 / SHA-256 / SHA-384 / SHA-512 四种结果,需要签名时切到 HMAC 模式填入密钥即可得到带密钥的摘要。

普通摘要使用浏览器内置 WebCrypto,大文件 SHA-256 使用分块计算控制内存。密钥、待签的消息与文件都只留在本机,不会上传。

使用步骤

  1. 在文本模式输入待摘要的内容,四种 SHA 结果即时列出;或切到文件模式选择一个本地文件。
  2. 点任意一行右侧的「复制」,取走对应算法的小写十六进制摘要。
  3. 需要带密钥的签名时切到 HMAC 模式,填入消息与密钥,选择 SHA-256 或 SHA-512。
  4. 核对校验值时,把官方公布的摘要与这里的结果逐位比对(长度不同说明算法选错了)。

适用场景

  • 下载了一个安装包,用官方公布的 SHA-256 核对文件有没有损坏或被替换。
  • 对接第三方接口时需要计算请求签名,先在这里用同样的消息与密钥验证签名逻辑是否一致。
  • 给两份配置做内容指纹,比对它们是否真的完全一致。
  • 提交代码前确认文本在经过编辑器保存后没有被改写(换行符或末尾空格差异会直接改变摘要)。

常见问题

页面提示当前环境不支持 WebCrypto?
WebCrypto(crypto.subtle)只在安全上下文中可用,也就是 https 或 localhost。若通过 http 的 IP 地址直接访问,浏览器会隐藏该接口。换用 https 访问即可,此时操作说明也会一并展开。
文件模式能处理多大的文件?
128 MiB 以内依次计算四种 SHA 摘要;更大的文件使用分块方式计算 SHA-256,并明确跳过需要整读的 SHA-1 / 384 / 512。计算过程中可以取消;需要逐项进度和预期值比对时,可使用「文件哈希校验」。
HMAC 和普通摘要有什么区别?
普通摘要是对内容本身计算,任何人都能复算;HMAC 把密钥混进计算过程,只有持有同一密钥的一方能得到相同结果,因此可用于验证消息来源与完整性。本页支持 HMAC-SHA-256 与 HMAC-SHA-512 两种。
SHA-1 还能用吗?
SHA-1 已不具抗碰撞安全性,不再适合用于签名等安全场景,本页保留它只为兼容既有系统的校验值。新设计请直接使用 SHA-256 及以上。
能把 SHA 摘要直接用来存密码吗?
不能。哈希不可逆并不等于适合存密码:通用摘要算法没有加盐与慢哈希设计,容易被字典与彩虹表攻击。密码存储应使用 Argon2、scrypt 或 bcrypt 这类专用算法。

基本操作

  • 输入文本或选择文件,自动计算四种 SHA 摘要
  • HMAC 模式填入消息与密钥即可得到签名,算法可切换 SHA-256 / SHA-512
  • 点击「复制」获取结果

输出约定

  • 摘要与签名均为小写十六进制,无分隔符与前缀
  • 文本与密钥按 UTF-8 编码后进摘要
  • SHA-1 / SHA-256 / SHA-384 / SHA-512 摘要长度分别为 40 / 64 / 96 / 128 个十六进制字符

安全提示

  • SHA-1 已不具抗碰撞安全性,仅兼容用途
  • HMAC 密钥过弱(如短口令)不提升安全性,请使用足够长的随机密钥
  • 哈希不可逆但不等于适合存密码:密码存储应使用 Argon2、scrypt 或 bcrypt
  • 全部计算在浏览器本地完成,不会上传任何数据

相关工具