MD5 是一种哈希(散列)算法,把任意长度的数据计算成固定 128 位(16 字节)的摘要,通常写成 32 位十六进制字符串。下面重点说明关键规则与常用写法。
MD5速查表
- 输出固定 128 位,十六进制 32 个字符
- 空字符串的 MD5 是 d41d8cd98f00b204e9800998ecf8427e
- “abc”的 MD5 是 900150983cd24fb0d6963f7d28e17f72
- 哈希是单向的,不能从结果“解密”出原文
- 安全性:已不安全,只适合校验意外损坏,不能用于签名和密码存储
- 匹配 32 位十六进制 MD5 值:^[a-fA-F0-9]{32}$
- 从文本中找出 MD5 值:\b[a-fA-F0-9]{32}\b
示例
输入:中文
计算结果:a7bac2239fcdcb3a067903d8077c4a07
说明:对 UTF-8 字节计算 MD5。
与相关技术的区别
MD5 输出 128 位,SHA-1 输出 160 位,SHA-256 输出 256 位。MD5 和 SHA-1 都已出现实际碰撞,不能用于安全场景;SHA-256 目前安全。哈希与加密不同:加密可以用密钥解密还原,哈希不可逆。哈希与 Base64 不同:Base64 可以还原,长度随输入变化。
乱码排查
MD5 结果本身不会乱码,它只包含 0–9 和 a–f;如果结果“对不上”,多半是计算前的文本字符集不同,例如 Windows 程序按 GBK 计算,网页按 UTF-8 计算。
本站的MD5计算器工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【MD5 能解密吗?】不能。MD5 是单向哈希,没有密钥也没有逆运算;所谓解密是查已知明文的对照表,只对简单字符串有效。
【MD5 是多少位?】128 位,即 16 字节,写成十六进制是 32 个字符。
【同一个文本为什么算出的 MD5 不一样?】通常是输入字节不同:字符集不同、末尾多了换行或空格、全角半角不同。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。