什么是MD5?

MD5(消息摘要算法5)是一种广泛使用的加密哈希函数,可生成128位哈希值。了解MD5的定义、工作原理及使用场景。

Definition
Message Digest Algorithm 5(消息摘要算法5)

MD5是一种加密哈希函数,可接受任意大小的输入并生成固定大小的128位(16字节)哈希值,通常表示为32字符的十六进制字符串。由Ronald Rivest于1991年设计。MD5是单向函数——无法通过哈希值反推原始输入。

MD5的工作原理

MD5以512位块处理输入并输出128位摘要: • "hello" → 5d41402abc4b2a76b9719d911017c592 • "Hello" → 8b1a9953c4611296a827abf8c47804d7 • 即使只改变一个字符,也会产生完全不同的哈希值 这种"雪崩效应"使MD5在检测数据损坏时非常有用——如果两个文件的MD5相同,它们几乎可以肯定是相同的文件。

MD5的安全漏洞

MD5被认为在密码学上已被破解: • 碰撞攻击——已经证明两个不同的输入可以产生相同的哈希值 • 彩虹表攻击——预计算的查找表可以反推常见哈希 • GPU破解——每秒可计算数十亿个MD5哈希 MD5绝对不应用于: • 存储密码(使用bcrypt、scrypt或Argon2) • 数字签名或证书 • 安全关键应用

MD5仍在使用的场景

尽管存在安全缺陷,MD5在非安全用途中仍然有用: • 文件完整性验证——检查下载文件是否损坏 • 校验和——在备份系统中比较文件版本 • 缓存——从内容生成缓存键 • 去重——快速识别重复文件 • 遗留系统——许多旧系统仍使用MD5且无法轻易更新

Try it yourself

生成UUID

关于MD5

MD5于1992年作为MD4的改进版本推出,在1990年代被广泛用于数字签名和SSL证书。2004年,研究人员证明了实用的碰撞攻击,到2008年证实可以使用MD5碰撞创建伪造的SSL证书。如今它在安全用途中已被废弃,但仍是计算领域最普遍使用的哈希函数之一。

FAQ

MD5代表什么?
MD5代表Message Digest Algorithm 5(消息摘要算法5)。
MD5对密码安全吗?
不安全。MD5计算速度很快,这使得使用暴力攻击或彩虹表很容易破解。对于密码,请使用专为此目的设计的慢速哈希算法,如bcrypt、scrypt或Argon2。
MD5哈希的长度是多少?
MD5哈希始终为128位(16字节),以十六进制编码时恰好为32个字符。

相关工具