跳到主要内容
Tooletto

SHA-256 哈希生成器

哈希生成器 的预设方案

从任意文本生成 SHA-256 哈希值。SHA-256 是目前校验和、数字签名、区块链标识符和内容寻址的默认选择——速度快、支持广泛,而且没有已知的实际攻击方法。

  • 文件永不离开你的设备
  • 免费,无需注册
  • 无水印
  • 加载后可离线使用
Loading tool…

如何哈希生成器

  1. 1

    输入你的文本

    输入或粘贴任何内容——哈希值会随输入即时更新。

  2. 2

    查看结果

    MD5、SHA-1、SHA-256、SHA-384 和 SHA-512 会一起显示出来。

  3. 3

    复制

    点击一下就能把任意一个哈希值复制到剪贴板。

为什么 SHA-256 成了默认选择

SHA-256 处在一个实用的甜蜜点上:截至目前它没有已知的实际碰撞攻击,这一点和 MD5、SHA-1 不同,同时计算速度依然足够快,不会在它通常应用的那些非密码场景中——验证文件完整性、生成内容寻址标识符,或者为缓存生成确定性的指纹——成为瓶颈。它也是比特币以及更广泛的区块链生态系统在区块哈希上采用的算法,这带来了大量真实世界的审视和针对它的硬件优化,使它既经过了充分测试,又在几乎所有编程环境中都得到广泛支持。

SHA-256 在日常开发中常见的应用场景

除了区块链和 TLS 证书之外,SHA-256 在普通的 Web 开发中也随处可见:作为子资源完整性(Subresource Integrity)属性的基础,让浏览器能验证 CDN 托管的脚本没有被篡改;作为从文件内容派生出的缓存键,让构建系统能准确检测哪些文件真正发生了变化;以及作为 Git 较新的哈希算法选项和 Docker 容器镜像摘要背后的标识方案。在这里生成一个哈希值,是不用借助命令行工具就能手动复现或核实这些值的快捷方式。

通过比较哈希值检测数值是否发生变化

两个匹配的 SHA-256 哈希值,实际上就是底层数据完全相同的确凿证据,因为意外发生碰撞的概率低到近乎天文数字——这正是哈希值能够廉价地检测一个大文件或数据集是否发生了任何变化的原因,不需要逐字节传输或比较整个内容。输入中任何一处哪怕看起来微不足道的字符差异,都会产出一个完全不同、和原始值毫无相似之处的哈希值。

常见问题

MD5 用起来安全吗?

涉及安全的场合不安全。针对 MD5 的实际碰撞攻击从 2004 年起就已经存在,SHA-1 也从 2017 年起被攻破。两者在非对抗性的场合仍然有用——比如验证下载文件是否匹配公布的校验和,或者检测意外的数据损坏。只要可能存在攻击者,就该使用 SHA-256 或更强的算法。

哈希值能被还原回原始文本吗?

不能——哈希在设计上就是单向的。但很短或很常见的输入,可以通过暴力破解或预先计算好的彩虹表找到,这正是为什么密码必须用像 bcrypt 或 Argon2 这样刻意设计得很慢的加盐算法来哈希,而不能用一个原始的 SHA 算法。

我应该用这个工具给密码做哈希吗?

不应该。密码存储需要一个刻意设计得很慢、并且针对每个用户单独加盐的算法——bcrypt、scrypt 或 Argon2。原始的 SHA-256 速度太快了:现代硬件每秒能对它尝试数十亿次猜测。

我的输入会被发送到别处吗?

不会。SHA 系列哈希使用浏览器内置的 Web Crypto API,MD5 则直接在这个页面用 JavaScript 运行。没有任何内容被传输,这也是这个工具离线也能继续工作的原因。

为什么同样的文本在别处得到的哈希值不一样?

几乎总是因为多了一个换行符,或者字符编码不同。这个工具是把你输入内容按 UTF-8 精确编码后的字节做哈希——像 `echo` 这样的命令行工具,除非加上 `-n` 参数,否则会自动附加一个换行符。