哈希生成器

验证下载文件、逐字节比较两个字符串,或为签名流程生成指纹,均依赖于密码学哈希算法。该工具会计算常用的哈希函数族(MD5、SHA-1、SHA-2(256/384/512)及 CRC32),并为每个函数提供可复制的摘要。您输入的文本会被发送到我们的服务器以计算摘要。

如何生成哈希值

  1. 1

    粘贴或输入内容

    输入您要哈希的文本。此生成器仅支持文本,不支持上传文件。

  2. 2

    选择哈希算法

    根据具体应用场景,可选择 MD5、SHA-1、SHA-256、SHA-384、SHA-512 或 CRC32。

  3. 3

    生成哈希值

    点击“生成哈希值”。所选算法的摘要随即显示,下方的列表会同时展示所有算法的结果。

  4. 4

    复制摘要

    生成的固定长度摘要已可直接粘贴至校验和文件、签名头或比对对话框中。

我该选择哪种哈希算法?

并非所有哈希算法都适用于所有场景。MD5和SHA-1适合用于唯一性验证,但无法满足安全相关需求;而SHA-2仍是新项目中较为稳妥的默认选择。

算法参考

算法 输出大小 安全状态 常用场景
MD5 128 位 已失效,自 2004 年起存在实际碰撞 非安全校验和、ETag、缓存键
SHA-1 160 位 已弃用,2017 年的 SHAttered 碰撞 旧版 Git 对象 ID、旧版 TLS 链
SHA-256 256 位 安全,推荐默认值 TLS、数字签名、文件完整性、区块链
SHA-384 384 位 安全 TLS 1.3 Suite B,更强的完整性
SHA-512 512 位 安全 超大规模数据集、HMAC 构造
CRC32 32 位 非加密算法,碰撞极易发生 错误检测(ZIP、PNG),快速完整性检查

散列并非加密

哈希函数是单向的:无法从摘要值还原原始输入。两个特性至关重要:

  • 抗碰撞性,任意两个输入均不会产生相同的哈希值。MD5和SHA-1算法中存在漏洞。
  • 抗前像性,给定一个哈希值后,无法找到生成该值的输入数据。这一特性同样适用于MD5和SHA-1,因此校验和仍能检测出偶然的损坏。

请勿使用纯 SHA-256 存储密码

密码需要使用计算速度较慢且经过加盐处理的函数:bcryptscryptArgon2idPBKDF2,且迭代次数至少为 60 万次。而像 SHA-256 这样的快速哈希算法在现代 GPU 上每秒可进行数十亿次暴力破解尝试。

文本编码至关重要

对字符串进行哈希处理,即是对其字节表示形式进行哈希运算。以 UTF-8 编码的 "café" 与采用 Latin-1 编码的同一字符串生成的哈希值不同。该工具默认对 UTF-8 字节进行哈希处理。

常见问题

几乎总是编码方式或末尾空格的差异。请检查另一工具使用的是 UTF-8 还是 Latin-1 编码,并确认其在哈希处理前是否会在输入数据后添加换行符。

对于检测下载文件的意外损坏,MD5算法完全适用;但对于攻击者可能伪造的内容(如证书、代码签名或密码存储),MD5算法存在缺陷,不得使用。

不可以。此生成器仅处理文本。如需检查文件,请使用操作系统自带的校验和命令,例如 Linux 和 macOS 上的 sha256sum,或 Windows 上的 Get-FileHash。

您输入的文本会被发送到我们的服务器以计算摘要,计算完成后不会被保存。

SHA-2是一组算法家族,其成员包括SHA-224、SHA-256、SHA-384和SHA-512。当人们提到“SHA-2”而未指明具体长度时,通常指的是SHA-256。

相关工具

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