MD5在线加密工具
工具介绍
MD5(Message-Digest Algorithm 5,消息摘要算法第5版)是一种广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,通常以32位十六进制字符串表示。本工具支持在线MD5加密,一键生成32位和16位MD5哈希值,提供大写和小写两种格式共四种输出结果。所有处理在浏览器本地完成,数据不上传服务器,安全可靠。适用于开发调试、数据校验、密码学学习等场景。
四种输出格式说明
| 32位小写 | 标准MD5完整哈希值,十六进制小写表示,符合RFC 1321标准 |
|---|---|
| 16位小写 | 截取32位MD5的第9-24位字符,部分数据库和系统使用此格式 |
| 32位大写 | 标准MD5完整哈希值,十六进制大写表示,部分系统要求大写格式 |
| 16位大写 | 截取32位MD5的第9-24位字符,大写格式 |
常见MD5值参考
| 输入 | MD5值(32位小写) | 说明 |
|---|---|---|
| 123456 | e10adc3949ba59abbe56e057f20f883e | 经典弱密码 |
| password | 5f4dcc3b5aa765d61d8327deb882cf99 | 最常见密码 |
| admin | 21232f297a57a5a743894a0e4a801fc3 | 管理员常用密码 |
| hello | 5d41402abc4b2a76b9719d911017c592 | 英文问候语 |
| 你好 | 7eca689f0d3389d9dea66ae112e5cfd7 | 中文问候语 |
| Hello World | b10a8db164e0754105e766fa85d3c384 | 经典测试字符串 |
MD5算法原理
| 项目 | 说明 |
|---|---|
| 发明者 | Ron Rivest(罗纳德·李维斯特),1991年发布RFC 1321 |
| 输出长度 | 128位(16字节),通常以32位十六进制字符串表示 |
| 分组大小 | 512位(64字节)分组,输入长度不足时填充 |
| 轮函数 | 4轮共64步操作,使用F、G、H、I四个非线性函数 |
| 初始值 | 四个32位寄存器初始值:A=0x67452301, B=0xEFCDAB89, C=0x98BADCFE, D=0x10325476 |
| 填充规则 | 先补1个1和若干0,最后64位存储原始长度(小端序) |
使用步骤
使用技巧
常见问题
Q1: MD5是什么?有什么用途?
MD5是一种消息摘要算法,属于密码学中的单向散列函数。它能将任意长度的数据通过不可逆的数学运算,生成一个固定长度为128位(通常显示为32位十六进制字符串)的哈希值。MD5的主要用途包括:文件完整性校验(检查下载的文件是否被篡改)、数据去重(通过哈希值快速判断内容是否重复)、消息认证、数字签名辅助、密码存储(现已不推荐)等。
Q2: 32位和16位MD5有什么区别?
32位MD5是完整的128位哈希值的十六进制表示,是标准的MD5输出格式,符合RFC 1321规范。16位MD5是取32位结果的第9位到第24位字符(中间的16个字符),也称为MD5的中间16位。16位MD5在某些旧系统和数据库中使用,因为存储空间有限。但注意:16位MD5的碰撞概率理论上比32位高,安全性更差。建议在可能的情况下使用完整的32位MD5或更安全的SHA-256。
Q3: MD5加密可以解密还原吗?
MD5是单向散列函数,从算法设计上来说是不可逆的,无法直接从MD5值反推出原始明文。但是对于简单的密码或常见字符串,可以通过「彩虹表」(Rainbow Table)或「碰撞攻击」找到对应的原始值。这就是为什么MD5不再被认为是安全的密码哈希算法。如果需要安全地存储密码,应该使用bcrypt、scrypt或Argon2等专门的密码哈希算法,并配合盐值(Salt)使用。
Q4: 为什么说MD5不安全了?
MD5的安全性已被严重破坏:1) 2004年,王小云团队宣布找到MD5碰撞方法;2) 2008年,研究人员成功构造了两个不同的但MD5相同的可执行文件;3) 2012年,火焰(Flame)病毒利用MD5碰撞伪造了微软的数字证书。由于MD5的碰撞攻击复杂度已降低到可行范围,它不再适合用于数字签名、证书认证、密码存储等安全敏感场景。NIST早在2011年就建议停用MD5用于密码学用途。
Q5: MD5和SHA-256哪个好?应该怎么选?
SHA-256远比MD5安全。简单对比:MD5输出128位,已被发现碰撞漏洞;SHA-256输出256位,目前未发现有效攻击。如果你的用途是:1) 文件完整性校验、去重等非安全场景 → MD5仍然可以用,速度更快;2) 密码存储、数字签名、安全认证 → 绝对不能用MD5,请使用SHA-256或SHA-512;3) 旧系统兼容 → 只能用MD5的话,请至少配合盐值使用。新系统强烈建议直接使用SHA-256及以上。
Q6: 我的输入内容会被上传到服务器吗?
绝对不会。本MD5加密工具所有计算全程在浏览器本地独立完成,使用成熟的CryptoJS库进行哈希计算,无需联网操作,全程不产生网络传输。你输入的原始文本和生成的MD5结果都不会发送、记录或缓存到任何服务器,关闭页面后所有数据即刻清空。对于密码等敏感数据,建议使用后及时关闭页面或点击清空按钮。
应用场景
| 应用场景 | 说明 |
|---|---|
| 文件完整性校验 | 校验下载的文件是否完整,比对官方提供的MD5值 |
| 数据去重 | 通过MD5值快速判断文件或数据是否重复 |
| 旧系统兼容 | 兼容仍在使用MD5的旧系统和遗留代码 |
| 开发调试 | 开发过程中快速生成哈希值用于测试和调试 |
| 消息摘要 | 为消息生成摘要,用于快速比对消息是否变更 |
| 数据库索引 | 对长文本生成MD5作为索引,加速查询 |
| 密码学学习 | 学习和理解哈希算法原理与安全性 |
| 数据校验 | 校验数据传输或存储过程中是否发生错误 |