#️⃣ MD5计算器
MD5 / SHA1 / SHA256 一键计算
MD5 / SHA1 / SHA256 一键计算
MD5已被证明存在碰撞漏洞,不推荐用于安全加密。但仍广泛用于文件校验、数据去重、缓存键等非安全场景。密码存储请用bcrypt/scrypt。
32位MD5是完整的32个十六进制字符。16位MD5是取32位的第9-24位(中间16位)。两者本质相同,16位是32位的子串。
不是。MD5是哈希(摘要),单向不可逆,无法从哈希值反推原文。它只是"固定长度指纹",不是可逆的加密。
MD5是纯十六进制字符串(0-9a-f),浏览器支持直接复制。点"复制MD5"即可拿到完整的32位小写结果。
两个不同输入算出同一个MD5值就叫碰撞。2004年起科学家已构造出MD5碰撞,2008年更发现可快速构造可控碰撞的算法,所以不能用MD5做签名或密码。
校验文件完整性用SHA256最稳妥,SHA1次之,MD5最弱。虽然MD5校验普通文件「够用」,但官方发布方多数已改用SHA256。
一样。MD5是确定性的,同一输入永远得到同一输出。所以"Hello World"的MD5永远是 b10a8db164e0754105b7a99be72e3fe5。
理论上可以处理任意长度的输入,但输出固定是128位(32个十六进制字符)。这也是"指纹"的意义:不管输入多长,摘要长度固定。
MD5(Message-Digest Algorithm 5)由 MIT 的 Ronald Rivest 于1991年设计,把任意长度输入处理成固定128位摘要。过程分四步:填充消息到512位倍数、附加长度、用4轮压缩函数迭代、输出4个32位字。
输出固定为128位,通常显示为32个十六进制字符(每4位一个字符)。
| 算法 | 输出位数 | 十六进制字符 | 安全性 |
|---|---|---|---|
| MD5 | 128位 | 32 | 已破解 |
| SHA-1 | 160位 | 40 | 已弱化 |
| SHA-256 | 256位 | 64 | 安全 |
| SHA-512 | 512位 | 128 | 安全 |
凡是"不需要防恶意攻击"的指纹场景,MD5都还行。
因为MD5没有盐、速度快、可并行,攻击者可以用彩虹表和暴力库瞬间反查常见密码。
正确做法是使用加盐慢哈希:bcrypt、scrypt、Argon2,它们故意"算得慢",让暴力破解成本高到不划算。
彩虹表是预先把海量常见密码的MD5算好存起来的表,拿到一个MD5值直接查表就能还原出原密码(如果没有加盐)。
只要加一个随机盐再哈希,同样的密码在不同用户那儿的哈希就完全不同,彩虹表就失效了。这就是"加盐"的价值。
| 输入 | MD5(32位小写) |
|---|---|
| Hello World | b10a8db164e0754105b7a99be72e3fe5 |
| 123456 | e10adc3949ba59abbe56e057f20f883e |
| admin | 21232f297a57a5a743894a0e4a801fc3 |
| 空字符串 | d41d8cd98f00b204e9800998ecf8427e |
| 123问 | 可自行计算验证 |
1. 输入文本。
2. 自动计算MD5/SHA1/SHA256。
3. 点击复制。