§

粘贴文本或拖放一个文件以进行哈希计算

编码
§

哈希生成器 — 在线生成 SHA-256、MD5、SHA-1

全部四个摘要都在您的浏览器中本地计算。不会上传任何内容。
§

MD5

已弃用
§

SHA-1

已弃用
§

SHA-256

§

SHA-512

国内安全合规与运维场景对哈希的依赖横跨多套体系。按《商用密码管理条例》进入金融、政务核心链路的系统须使用国密 GM/T 0004 SM3(256 位摘要),替代 SHA-256 用于电子签章与日志归档;阿里云 OSS、腾讯云 COS 的对象 ETag 与分片合并仍以 MD5 校验文件指纹;华为云软件包仓库、银河麒麟与统信 UOS 的 RPM 元数据采用 SHA-256;开源镜像站清华 TUNA、阿里巴巴开源镜像 ISO 同步均给出 SHA-1 与 SHA-256;Gitee 仓库的提交标识沿用 Git SHA-1。

什么是加密哈希?

加密哈希函数接受任意长度的输入并输出固定长度的摘要。相同的输入始终产生相同的摘要;改变其中一个比特,大约一半的输出比特就会发生变化。本工具为您提供的任意文本或文件计算四种最广泛部署的摘要——MD5RFC 1321)、SHA-1SHA-256SHA-512(SHA 家族由 FIPS 180-4 定义)——而不会将数据发送出您的设备。

这个哈希生成器是如何工作的?

哈希计算完全在您的设备上运行。SHA-1、SHA-256 和 SHA-512 通过浏览器原生的 crypto.subtle.digest API 分发处理;MD5 使用一份内置的公有领域实现,因为 Web Crypto 不附带 MD5。步骤如下:

  1. 从文本框读取您的输入,或将您的文件从磁盘读入一个 ArrayBuffer。文本在哈希前会被编码为 UTF-8,因此摘要与服务器端 hashlib.sha256(text.encode()) 调用产生的结果一致。
  2. 每种算法都会将消息填充到块边界,然后逐块处理,通过一系列按位运算和模运算将输入字节与内部运行状态混合。
  3. 当最后一个块被处理完毕时,内部状态被最终化:MD5 产生 128 位,SHA-1 产生 160 位,SHA-256 产生 256 位,SHA-512 产生 512 位。
  4. 原始摘要字节根据您在面板上方选择的编码方式,格式化为小写十六进制或标准 Base64。
  5. 每个摘要都会写入它自己的只读文本框,并带有复制按钮。开启实时模式后,每次按键都会重新哈希,让您实时观察雪崩效应。

我应该使用哪种哈希算法?

此处提供的四种算法覆盖了从老旧校验和到当前加密推荐的完整范围。请根据用途而非习惯来选择:

  • MD5(128 位)——速度快且普及,但在密码学上已被攻破。自 2004 年起公开的实际碰撞已经存在。仅可用于非安全的校验和:去重键、缓存失效标识、类似 ETag 的指纹,以及对照可信目录验证文件完整性。
  • SHA-1(160 位)——同样在安全方面已被弃用。2017 年的 SHAttered 攻击展示了一个公开的 PDF 碰撞。仍在旧版 Git 对象 ID、较旧的 TLS 证书以及尚未泄露密钥的 HMAC 构造中可见。请勿将其用于新工作。
  • SHA-256(256 位)——当前的通用默认选项。用于 TLS 证书指纹、Bitcoin 区块哈希、软件发布校验和、容器镜像摘要以及大多数现代代码签名流水线。如有疑问就选它。
  • SHA-512(512 位)——与 SHA-256 同属 SHA-2 家族,内部状态更大,字长为 64 位。在 64 位 CPU 上通常比 SHA-256 更快,并且当您需要额外的抗碰撞余量或更长的 HMAC 密钥摘要时,它是首选。

为什么使用这个哈希生成器?

  • 隐私:每一字节输入都在您的浏览器中本地完成哈希。没有文件上传、没有网络往返、没有服务器日志。文件选择器通过 File API 直接从磁盘读取。
  • 一次输入四种摘要:粘贴一次即可并排查看 MD5、SHA-1、SHA-256 和 SHA-512,并能在十六进制和 Base64 之间切换输出编码,无需重新哈希。
  • 符合标准的输出:SHA 家族交由 crypto.subtle.digest 处理,它与您的操作系统已经信任的 FIPS 180-4 实现相同。MD5 严格遵循 RFC 1321 字节级实现。
  • 为校验工作而生:实时模式在您输入时展示雪崩效应;文件面板支持的二进制文件大小取决于标签页可用内存,因此无需终端即可校验发布归档。

哈希函数的常见应用有哪些?

哈希出现在日常工程工作的方方面面:

  • 验证下载:将发布归档的 SHA-256 摘要与项目网站上公布的值进行比对,以确认其在传输过程中未被篡改。
  • 调试集成:复现合作方服务在请求签名中所期望的精确 MD5 或 SHA-256,以便定位规范字符串构造器中的偏差。
  • 内容寻址:从负载生成确定性 ID,用作缓存键、去重标识或类似 Git 的对象标识符。

哈希示例是什么样的?

对 ASCII 字符串 hello 进行哈希计算,得到 MD5 为 5d41402abc4b2a76b9719d911017c592,SHA-1 为 aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d,SHA-256 为 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824,SHA-512 为以 9b71d224bd62f3785d96d46ad3ea3d73... 开头的 128 个字符的十六进制字符串。仅在末尾添加一个空格再次哈希,每个摘要都会变得面目全非。

这款哈希生成器完全在您的浏览器中运行,基于您的操作系统已经信任的相同原语:用于 SHA 家族的 Web Crypto,以及一份小巧且经过审计的 MD5 实现,用于 Web Crypto 未提供的那一种摘要。粘贴、拖放一个文件、复制一个摘要——没有任何其它内容离开当前标签页。