SHA256 哈希生成器

粘贴任意文本,本生成器即以确定性的 64 位小写十六进制字符串返回其 SHA-256 摘要。SHA-256 是 SHA-2 家族中的 256 位成员,也是现代密码学事实上的标准哈希:Bitcoin 区块哈希、TLS 1.3 记录、JWT HS256 签名以及容器镜像摘要都依赖它。请记住,SHA-256 是单向哈希,而非加密:你无法解密或将摘要逆推回原始文本。

如何生成 SHA-256 摘要

  1. 1

    输入文本

    输入或粘贴任意 UTF-8 字符串:一句话、一段 JSON 载荷、一个 API 密钥,或任何你想生成指纹的文本。

  2. 2

    输入编码为 UTF-8

    文本在哈希之前会被序列化为 UTF-8 字节,与所有常用的 SHA-256 库一致。

  3. 3

    计算哈希

    消息被填充到 512 位的整数倍,并通过 SHA-256 压缩函数在 64 轮中逐块处理。

  4. 4

    复制 64 字符十六进制

    输出始终为 64 位小写十六进制字符(256 位)。一键即可复制。

SHA-256 事实

属性
输出大小 256 位 / 64 个十六进制字符
分组大小 512 位
轮数 64
抗碰撞性 约 2^128 的工作量(理论值)
抗原像性 约 2^256 的工作量
硬件支持 Intel/AMD/ARM 的 SHA 扩展指令(sha256rnds2、sha256h)

SHA-256 的应用场景

  • Bitcoin。 对区块头、地址和 TXID 使用双重 SHA-256(SHA256(SHA256(x)))。
  • TLS 1.3。 记录哈希将握手消息绑定到最终的密钥调度中。
  • 子资源完整性。 <script> 标签上的 integrity="sha256-..." 让浏览器拒绝被篡改的 CDN 资源。
  • JWT。 HS256 使用 HMAC-SHA-256;RS256 和 ES256 将 SHA-256 与 RSA 或 ECDSA 配合使用。
  • 容器镜像。 sha256:abc123... 摘要在各注册表中标识镜像层。
  • 内容寻址。 IPFS、git(可选)和软件包索引使用 SHA-256 标识内容。

本工具返回十六进制

摘要以 64 位小写十六进制字符显示,与 sha256sum、Git 及大多数工具所用的形式相同。其他生态系统会以不同方式编码这相同的 32 字节:子资源完整性和部分 AWS 签名使用 base64(含填充共 44 个字符),容器注册表则在十六进制前加上 sha256: 前缀。若你需要其中某种形式,取用此处的十六进制并对字节重新编码即可,底层摘要完全相同。

一个小坑:末尾换行符

echo "hello" | sha256sum 计算的是 6 个字节的 hello\n,而不是 5 个字节。如果某个命令行工具对看似相同的输入返回了与本生成器不同的值,请检查是否包含了末尾换行符。使用 echo -n "hello"printf "hello" 可精确地对 5 个字节进行哈希。

常见问题

不能。本生成器对你输入或粘贴的文本进行哈希。若要生成文件的指纹,请使用命令行工具,例如 sha256sum 文件shasum -a 256 文件certutil -hashfile 文件 SHA256,它们会读取磁盘上的原始字节。

单独使用并不安全。SHA-256 很快,这对校验和很好,但对密码存储很糟糕:攻击者可在 GPU 上每秒计算数十亿次哈希。密码请使用 Argon2id 或 bcrypt;SHA-256 用在基于 HMAC 的认证码内部是合适的。

SHA-2 是一个家族(SHA-224、SHA-256、SHA-384、SHA-512)。SHA-256 是其中一种特定的输出长度。当有人不加说明地说“SHA-2”时,通常指的就是 SHA-256。

在我们的服务器上。你的文本通过加密连接发送,使用标准的 SHA-256 函数进行哈希,然后返回 64 字符的摘要。我们不会存储你提交的内容。SHA-256 是单向的,因此无法将摘要逆推或解密回你的输入。

相关工具

此工具还提供其他语言版本