MD5 是一种哈希(散列)算法,把任意长度的数据计算成固定 128 位(16 字节)的摘要,通常写成 32 位十六进制字符串。下面重点说明输出格式说明。
MD5结果的十六进制与 Base64 表示
计算方向:数据 → 填充到 512 位整数倍 → 分块压缩 → 128 位摘要。
MD5 没有解码方向。所谓“MD5 解密”只是用彩虹表或字典查已知明文,复杂、加盐的输入查不到。
示例
输入:https://www.123wen.cn/?q=测试
计算结果:3e0f68fa7fcffeedf5f965d7610873b5
说明:对 UTF-8 字节计算 MD5。
注意事项
- MD5 不是加密,所谓“MD5解密”网站只是在已知结果库中查表
- 计算前确认字符集和是否含换行:echo 默认会在末尾加换行
- 密码不要直接用 MD5 存储,应使用 bcrypt/Argon2 等慢哈希并加盐
- 2004 年王小云团队公布了实用的碰撞构造方法,现在普通电脑几秒即可构造碰撞
Go 示例
下面是 Go 中处理MD5的常用写法:
import "crypto/md5"
sum := md5.Sum([]byte("abc"))
fmt.Printf("%x\n", sum)运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的MD5计算器工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【空字符串的 MD5 是多少?】d41d8cd98f00b204e9800998ecf8427e。
【MD5 能解密吗?】不能。MD5 是单向哈希,没有密钥也没有逆运算;所谓解密是查已知明文的对照表,只对简单字符串有效。
【MD5 是多少位?】128 位,即 16 字节,写成十六进制是 32 个字符。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。