什么是 MD5?
MD5(消息摘要算法 5)是一种广泛使用的加密散列函数,产生 128 位(16 字节)的散列值,通常呈现为 32 个字符的十六进制数。它由 Ron Rivest 于 1991 年设计,作为 MD4 的后继者。
主要特征:
- 确定性:相同的输入总是产生相同的散列
- 快速计算:对于任何给定输入都能快速计算
- 雪崩效应:输入的微小变化会产生截然不同的输出
- 固定输出大小:无论输入大小如何,始终产生 128 位散列
- 碰撞脆弱性:已知漏洞使得找到碰撞成为可能
安全状态: ⚠️ MD5 在密码学上已被破解,不应用于安全关键应用。碰撞攻击在 2004 年得到证明,现代计算能力使实际碰撞生成变得可行。
常见用途(当前和历史):
- 文件完整性验证(非安全关键)
- 数据损坏检测的校验和
- 需要 MD5 的遗留系统
- 数据库密钥生成(非加密)
- 一些较老的协议和系统
推荐替代方案:
- 新应用使用 SHA-256 或 SHA-3
- 高安全要求使用 SHA-512
- 高性能应用使用 BLAKE2