在线MD5加密工具
在线MD5加密工具
16 位小写
16 位大写
32 位小写
32 位大写
关于MD5加密工具
输入任意内容,四种格式同时出现:32 位或 16 位、大写或小写。其实它们是同一个哈希,16 位只是 32 位截了中间一段,一些老系统还在这么用。
MD5 对任意输入生成固定的 128 位指纹。同样的文本永远得到同样的哈希,改一个字母,整个哈希都会变。
现在还能用的地方
- 校验下载的文件和发布的校验和是否一致
- 缓存 key、去重,这种没人攻击你的场景
- 某些老接口就是要求 MD5
不该用的地方
密码。MD5 快是它的设计目标,而密码哈希恰恰要慢。显卡一秒能试上百亿次,你读过的那些泄露库里的明文密码基本都是这么撞出来的。后端该用 bcrypt 或 argon2。
防篡改签名也不行:MD5 的碰撞 2004 年就能人为构造,作为安全函数它早就退役了。
关于中文
哈希按 UTF-8 字节计算,Linux 的 md5sum 也是这么干的,两边能对上。但如果有一方用 GBK 编码同一段文字,哈希会不同而文本看起来一样。「哈希对不上又找不到原因」时,先查编码,再查末尾空格,再查对方有没有加盐。
常见问题
MD5 安全吗?
当校验和、缓存 key 用没问题。当密码哈希或签名不行:2004 年起就能人为构造碰撞,而且它的速度对攻击者是优势。
为什么有个 16 位的?
32 位哈希中间的 16 个十六进制字符。一些老系统只存这一段,新系统别这么干。
为什么和另一个系统的哈希对不上?
按顺序查三样:输入末尾有没有换行或空格;中文的编码是 UTF-8 还是 GBK;对方系统有没有加盐。
我输入的内容会被上传吗?
不会。哈希在浏览器里算,什么都不发送、不存储。