MD5(Message-Digest Algorithm 5)是一种被广泛使用的密码散列函数,可以产生出一个 **128 位(16 字节)**的散列值(Hash Value),通常用一个 32 位的十六进制数字表示。
本工具支持将输入的每一行字符串分别进行 MD5 加密,提供四种加密格式选择:32位小写、32位大写、16位小写、16位大写。满足不同开发场景的需求:
| 格式名称 | 字符长度 | 示例 (以 "123456" 为例) | 应用场景 |
|---|---|---|---|
| 32位小写 | 32 字符 | e10adc3949ba59abbe56e057f20f883e | 标准格式,绝大多数开发语言默认输出 |
| 32位大写 | 32 字符 | E10ADC3949BA59ABBE56E057F20F883E | 某些特定系统或金融接口要求 |
| 16位小写 | 16 字符 | 49ba59abbe56e057 | 提取 32 位中间的第 9 到 24 位 |
| 16位大写 | 16 字符 | 49BA59ABBE56E057 | 简化的哈希标识 |
虽然 MD5 曾经被广泛用于密码存储,但随着计算能力的提升和“彩虹表”攻击的成熟,MD5 已经不再适合加密高度机密的密码。
Q:MD5 可以解密吗?
A: 从数学原理上讲,MD5 是不可逆的,不存在所谓的“解密”。网上所谓的“MD5在线解密”实际上是利用庞大的数据库进行“反向查询(彩虹表)”,即提前计算好千万级常用密码的 MD5 值进行匹配。
Q:为什么我输入的中文加密结果和别人不一样?
A: 这通常是因为字符编码不同。本工具默认采用 UTF-8 编码。如果对方使用的是 GBK 编码,由于汉字的二进制表示不同,生成的 MD5 值也会完全不同。
Q:16 位 MD5 和 32 位 MD5 有什么区别?
A: 16 位 MD5 实际上是从 32 位 MD5 字符串中取出的中间 16 位字符。它们的逻辑核心是相同的,只是截取长度不同。
md5()、Java MessageDigest、Python hashlib.md5() 等标准库完全一致。更多MD5相关基础知识: MD5 深度解析:原理、结构、碰撞、应用与替代方案