EN
首页 分类 MD5 加密

MD5 加密

32 位 MD5 摘要,文本与文件均可计算

常见问题

MD5 能解密吗?

不能。MD5 是单向哈希而不是加密,没有密钥也没有逆运算。网上所谓的「MD5 解密」都是拿你的哈希去比对预先算好的字典库(彩虹表),查到就返回原文,查不到就永远解不出来。

32 位和 16 位 MD5 有什么区别?

16 位 MD5 只是 32 位值的中间一段(第 9 到第 24 个字符),并不是另一种算法。校验文件是否一致时,用 32 位更安全。

怎么用 MD5 校验文件是否完整?

用工具栏的「哈希文件」选中原文件和下载后的文件各算一次,两个摘要完全一致就说明没有损坏或被篡改。前提是对比的哈希来自可信来源(官网、GitHub Release 页),自己算一个再拿自己比没有意义。

MD5 还安全吗?

不适合用于密码存储或数字签名。MD5 在 2004 年已被证明存在碰撞。密码应改用 bcrypt、scrypt 或 Argon2id 这类慢哈希并加盐。

关于这个工具

先分清「摘要」和「加密」。MD5 是单向哈希:没有密钥、没有逆运算,输出固定 128 位、写成 32 个十六进制字符。被叫成「MD5 加密」只是历史习惯,网上所有「MD5 解密」都是拿你的哈希去查预先算好的字典(彩虹表),查到才返回原文 —— 它从来没有真正解开过任何东西。

「16 位 MD5」不是另一种算法,只是 32 位结果里第 9 到第 24 个字符。缩短的同时也砍掉了 96 位信息,碰撞概率大增;早年的论坛密码库爱用它,现在只适合做不严肃的短标识。本工具只输出完整 32 位,需要短形态自己截取。

校验文件点工具栏的「哈希文件」,选本地文件即可:文件按原始字节读取并计算,不会上传。有两个高频误判要先排除:同一段文字在 Windows 记事本(CRLF)和 Linux(LF)里换行不同,哈希必然不同;文件开头带不带 BOM 也会改变结果。所以「算出来的值和官网不一样」先查编码和换行,再怀疑文件损坏。

文本按 UTF-8 编码后计算,emoji 这类超出基本平面的字符会先展开成代理对再编码。这正是很多手写 MD5 实现在 emoji 上给出错误摘要的原因 —— 只处理到三字节序列的编码器会把代理对拆坏。

不适合的场合:密码存储(应用 bcrypt / scrypt / Argon2id 这类慢哈希并加盐;加盐只能让彩虹表失效,并不能阻止弱口令被逐个猜)、数字签名、防篡改(应选 SHA-256 及以上)。MD5 的实用碰撞在 2004 年已被公开演示,如今构造两份内容不同、MD5 相同的文件只需普通算力。