utilduck
Home · 开发者 · 哈希生成器

哈希生成器

输入任意文本,即时查看 SHA-1、SHA-256、SHA-384 和 SHA-512 摘要。

SHA-1
-
SHA-256
-
SHA-384
-
SHA-512
-

关于密码哈希

密码哈希函数接受任意输入并产生固定长度的十六进制字符串。输入即使有微小变化,输出也会完全不同。这使哈希适用于验证文件完整性、存储密码和数字签名。

SHA-256 和 SHA-512 属于 SHA-2 系列,目前对大多数用途仍然安全。SHA-1 对碰撞攻击存在漏洞,仅因兼容性和旧版目的收录。MD5 因浏览器安全策略(Web Crypto API)不可用。

怎么生成文本的 SHA 哈希值?

生成 SHA 哈希时,把文字的 UTF-8 字节输入选定的哈希算法(SHA-1、SHA-256、SHA-384 或 SHA-512),算法会通过固定轮次的位运算处理数据,输出固定长度的十六进制摘要。例:"hello" 的 SHA-256 哈希值始终是 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824。

生成密码学哈希的步骤

  1. 用 UTF-8 编码把输入文字转换成字节。
  2. 选择哈希算法:SHA-1(160 位输出)、SHA-256(256 位)、SHA-384(384 位)或 SHA-512(512 位)。
  3. 把字节输入算法的压缩函数,无论输入长度多少,都按固定轮次运算。
  4. 算法输出固定长度的二进制摘要——SHA-1 为 20 字节,SHA-256 为 32 字节,SHA-384 为 48 字节,SHA-512 为 64 字节。
  5. 把二进制摘要转换成小写十六进制字符串显示,每个字节用两个十六进制字符表示。

哈希输出长度

SHA-1 = 160 位(40 个十六进制字符) | SHA-256 = 256 位(64 个十六进制字符) | SHA-384 = 384 位(96 个十六进制字符) | SHA-512 = 512 位(128 个十六进制字符)
  • 摘要 = 哈希函数输出的固定长度结果,这里以小写十六进制显示
  • 输入哪怕只改动一个字符,输出的摘要也会完全不同(雪崩效应)

文本 "hello" 的哈希示例

算法"hello" 的哈希值
SHA-1aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
SHA-2562cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
SHA-38459e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f
SHA-5129b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043

常见问题

SHA-1 还能安全使用吗?

SHA-1 已经不适合用于数字签名或证书验证等安全场景,因为研究人员在 2017 年展示了一次实际可行的碰撞攻击(两个不同输入产生相同哈希值)。这里保留 SHA-1 只是为了兼容旧系统和简单校验和等非安全用途;涉及安全的场景请使用 SHA-256 或更高强度的算法。

为什么这个工具不提供 MD5?

本工具使用浏览器内置的 Web Crypto API(crypto.subtle.digest),它支持 SHA-1 和 SHA-2 系列,但没有实现 MD5,因为 MD5 已被认为在密码学上不再安全,浏览器厂商也没有把它加入标准接口。

能把哈希值反推回原文吗?

不能。密码学哈希函数在设计上就是单向函数——没有算法能从摘要还原出输入。那些看起来能"破解"哈希的工具,实际上是对大量候选内容逐一计算哈希再比对结果,而不是把数学运算反过来算。

如果哈希不能反推,那它有什么用?

哈希用来验证数据是否被改动:把下载文件的哈希值和官方公布的哈希值比对可以确认文件完整,把密码的哈希值(配合适当加盐)进行比对,可以让系统在不存储明文密码的情况下验证登录。

本工具在浏览器内使用 Web Crypto API 对 UTF-8 文本做哈希运算,不对上传的文件做哈希,不提供 MD5,也不添加盐值,因此相同的输入文本始终会得到这里显示的同一个哈希值。

Sources: FIPS 180-4 - Secure Hash Standard (SHS)

隐私与安全

  • 在浏览器中计算 — 您输入的内容仅在本机设备上计算,不会发送到 utilduck 服务器。
  • 加密连接 — 所有页面均通过 HTTPS 提供,传输过程中无法被读取。
  • 不提供给第三方 — 您输入的内容不会传递给分析或广告服务。
  • 不保存 — 计算结果不会保存到任何服务器,也无需注册账号。

最后更新: 2026-08-17