🔒

MD5/SHA 哈希生成器 常见问题

Q: 什么是加密哈希函数?

加密哈希函数接收任意大小的输入数据,并生成固定大小的输出(称为哈希值或摘要)。它是一个单向函数——你无法通过哈希值反向计算还原出原始输入。相同的输入永远产生相同的哈希值,但即使只改变输入中的一个字符,输出的哈希值也会完全不同(这种特性被称为雪崩效应)。例如,"hello"和"Hello"只差一个大写字母,它们的 SHA-256 哈希值却毫无相似之处。使用我们的免费哈希生成器可以为任意文本计算哈希值。

Q: 如何选择合适的哈希算法?

不同哈希算法适用于不同场景。SHA-256 是最广泛推荐的通用算法,适用于数字签名、文件完整性校验、带盐的密码哈希和区块链。SHA-512 生成 512 位输出,适用于对安全性要求最严格的场景。SHA-1 已经不安全,不应再用于任何安全相关的场景,Google 在 2017 年已经实现了对 SHA-1 的碰撞攻击。MD5 在密码学上已被彻底攻破——2004 年就已发现了碰撞漏洞,目前仅适用于非安全性用途的校验和及向下兼容。从安全角度出发,对于新项目一律选择 SHA-256 或更高。我们的哈希生成器在同一个界面中支持所有这些算法,方便你进行对比。

Q: 如何用哈希值验证文件完整性?

当你从网络上下载软件、镜像文件或重要文档时,发布方通常会提供该文件的哈希值(也称为校验和)。下载完成后,你可以在本地使用我们的哈希生成器计算下载文件的哈希值,然后与发布方提供的官方哈希值进行对比。如果两者一致,则说明文件在传输过程中未被篡改或损坏;如果不一致,则文件可能已被改动或下载不完整。SHA-256 是当前文件完整性验证的标准选择。

Q: MD5 现在是否完全不能使用?

MD5 在密码学上确实已经完全不安全——已知的碰撞攻击可以在数秒乃至数分钟内找到两段具有相同 MD5 哈希值的不同数据。因此,绝对不要将 MD5 用于数字签名、密码存储、证书校验或者任何安全敏感的场景。但 MD5 在某些非安全性的场景中仍然有用,比如快速去重检查、非对抗性数据完整性验证(如检测文件在存储中的意外损坏而非恶意篡改)、以及为了与旧系统兼容而需要的 MD5 校验。这些场景的共同点是:不存在恶意攻击者刻意构造碰撞的情况。如果你的场景中对安全性有任何要求,请使用 SHA-256 或更强的算法。使用我们的哈希生成器可以轻松对比 MD5 和 SHA-256 对同一输入产生的输出。