博客 / 哈希算法科普

哈希算法科普:MD5、SHA家族的区别与用途

2026-06-25 · 7 分钟阅读

什么是哈希算法?

哈希(Hash)算法是一种将任意长度的数据映射为固定长度摘要的数学函数。无论你输入的是一个单词、一整本小说还是一部高清电影,哈希算法都会输出一串固定长度的字符——比如MD5始终输出32位十六进制字符,SHA-256始终输出64位十六进制字符。

哈希算法的核心特性:

MD5:曾经的王牌,今日的遗产

MD5(Message Digest 5)由罗纳德·李维斯特于1991年设计,生成128位(32字符)哈希值。在90年代和00年代初期,MD5是最受欢迎的哈希算法,广泛用于文件完整性校验和密码存储。

然而2004年,中国密码学家王小云教授团队发现了MD5的碰撞攻击方法——能够在合理时间内构造两个不同内容但具有相同MD5值的文件。这意味着恶意软件可以伪装成合法软件通过MD5校验。今天,MD5在安全领域已被弃用,但在非安全场景中仍然常见:

SHA-1:从流行到退役

SHA-1(Secure Hash Algorithm 1)由美国国家安全局设计,生成160位(40字符)哈希值。相比MD5,SHA-1的抗碰撞能力更强——但强得有限。2017年,Google与CWI联合团队成功实现了SHA-1的首次实际碰撞攻击(SHAttered项目),证明SHA-1也不再安全。

如今Git系统已将SHA-1逐步迁移至SHA-256,主流浏览器也停止信任使用SHA-1的SSL证书。

SHA-2家族:当前安全标准

SHA-2是一族哈希算法,包含SHA-224、SHA-256、SHA-384、SHA-512等变体。数字代表输出的比特长度。其中SHA-256是应用最广泛的版本:

动手实践:在线生成哈希值

使用 ToolHub 哈希生成器,你可以轻松体验各种哈希算法:

如何选择哈希算法?

不同场景选择不同算法,这里给出通用建议:

记住:没有绝对安全的哈希算法,只有持续演进的攻防博弈。保持关注行业动态,及时淘汰已不安全的旧算法,是每个开发者的责任。

Recommended

OKXDomainsCloud $4/mo
Sponsored