Hash 生成器 — 在线生成 SHA-256、SHA-512 等哈希值

粘贴任何文本,立刻得到 SHA-1、SHA-256、SHA-384、SHA-512 哈希值。使用 Web Crypto API,数据留在浏览器里,不会发到服务器。适合文件完整性校验、密码存储验证和 API 签名调试。

生成 MD5、SHA-1、SHA-256 等哈希值

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

输入要哈希的文本

生成 MD5、SHA-1、SHA-256 等哈希值

SHA-1

160 bits

SHA-256

256 bits

SHA-384

384 bits

SHA-512

512 bits

生成各种哈希值

哈希到底在干什么

哈希函数接受任何输入——一个字符或 10GB 文件——产生固定长度的输出("摘要")。SHA-256 无论输入多大,输出永远是 64 个十六进制字符。相同输入永远得到相同哈希,但改变一个比特,输出就完全不同。这就是"雪崩效应"。

关键特性:哈希是单向的。你无法从 SHA-256 哈希反推出原始输入。这就是它用于密码存储的原因——你存哈希,不存密码。用户登录时,你对输入做哈希然后比较哈希值。

SHA-256 属于 SHA-2 家族,定义在 FIPS 180-4(NIST 发布)。它用于比特币挖矿、TLS 证书、Git commit ID 和大多数 API 签名方案。SHA-1 在安全方面已被废弃(2017 年 Google 的 SHAttered 项目发现了碰撞),但仍用于非安全性校验如 Git 对象哈希。

使用方法

  1. 在输入框中粘贴或输入文本。
  2. 所有哈希算法同时计算——不需要先选一个。
  3. 一键复制你需要的哈希值。
  4. 文件哈希的话,粘贴文件内容或用命令行工具 sha256sum。

什么时候会用到

下载后验证文件完整性

下载了 ISO 或二进制文件?发布者会列出 SHA-256 哈希。把文件内容粘贴进来(或用 CLI 的 sha256sum)对比。哈希匹配说明文件在传输过程中没有损坏或被篡改。

调试 API 签名生成

很多 API(AWS、Stripe、webhook)要求 HMAC-SHA256 签名。当你的签名不匹配时,把待签名字符串粘贴进来逐步验证中间哈希值。

检查密码是否出现在泄露数据库中

HaveIBeenPwned 的 API 用 SHA-1 前缀匹配(k-匿名性)。对密码做 SHA-1 哈希,把前 5 个字符发给他们的 API,检查完整哈希是否在响应中。这个工具给你起始的 SHA-1。

从内容生成确定性 ID

需要一个每次都相同的内容唯一 ID?对内容做 SHA-256 哈希。相同内容 = 相同哈希 = 相同 ID。用于内容寻址存储、缓存键和去重。

需要知道的事

1.

永远不要用普通哈希存密码

SHA-256 很快——这对密码来说是坏事。攻击者用 GPU 每秒能试数十亿个 SHA-256 哈希。密码用 bcrypt、scrypt 或 Argon2——它们故意很慢(每次哈希 100ms+),让暴力破解不现实。

2.

SHA-1 安全性已破,校验用途没问题

Google 在 2017 年演示了 SHA-1 碰撞(SHAttered)。不要用 SHA-1 做数字签名或证书。但非安全用途如 Git 对象 ID 或缓存失效,还是没问题的——没人会花 10 万美元来伪造你的缓存键。

3.

相同输入 = 相同哈希,永远如此

哈希是确定性的。今天对 "hello" 做 SHA-256 和 10 年后做,得到相同输出。这就是它用于验证的原因。但也意味着相同密码产生相同哈希——所以存密码前要加随机盐。

4.

哈希长度不等于安全级别

SHA-256 输出 256 位但提供 128 位碰撞抗性(生日攻击)。SHA-512 输出 512 位有 256 位碰撞抗性。大多数应用 SHA-256 绰绰有余。

示例

简单字符串的 SHA-256

经典测试——对 "hello" 做哈希验证你的实现是否正确。

Input

hello

Output

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

改一个字符 = 完全不同的哈希

演示雪崩效应——"hello" vs "Hello"(大写 H)。

Input

Hello

Output

185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

功能特点

  • 同时计算 SHA-1、SHA-256、SHA-384、SHA-512
  • 使用 Web Crypto API——加密学正确的实现
  • 输入时实时显示结果——不需要点按钮
  • 每种算法的输出一键复制
  • 100% 浏览器运行——零网络请求
  • 免费,不用注册,不追踪

常见问题

能"解密"或反转哈希吗?

不能。哈希函数在数学上是单向的。你无法从输出计算出输入。"破解"哈希的唯一方法是猜测输入直到匹配(暴力破解)或使用预计算表(彩虹表)。这就是为什么长的随机密码很重要。

该用 SHA-256 还是 SHA-512?

大多数情况 SHA-256 就够了。SHA-512 在 64 位系统上稍快且产生更长的哈希,但两者都提供足够的安全性。除非有特定原因(如匹配现有系统要求),否则用 SHA-256。

为什么不能直接用 SHA-256 存密码?

因为太快了。现代 GPU 每秒能计算约 100 亿个 SHA-256 哈希。8 位密码有约 6×10^15 种组合——大约 7 天就能破解。bcrypt/Argon2 故意很慢(每次哈希约 100ms),让同样的攻击需要数千年。

哈希和加密有什么区别?

加密是可逆的(有密钥)。哈希不可逆。加密:明文 → 密文 → 明文。哈希:输入 → 哈希(无法回去)。需要恢复原始数据用加密,只需要验证数据匹配而不存储原始数据用哈希。

SHA-1 还安全吗?

用于安全(签名、证书):不安全,2017 年已演示碰撞攻击。用于非安全用途(校验和、缓存键、Git):没问题。攻击成本约 10 万美元计算资源,且需要非常特定的场景,不适用于日常校验用途。

使用技巧与相关工作流

  • 生成安全密码并进行哈希存储,请使用我们的密码生成器.
  • 在生成哈希的同时创建唯一标识符,请使用我们的UUID 生成器.
  • 将哈希输出编码以便安全传输到 URL 中,请使用我们的Base64 编解码.
  • 格式化包含哈希值的 JSON 数据,请使用我们的JSON 格式化.