MD5 在线计算工具
输入任意文本,实时生成 MD5 摘要(32 位十六进制),同时给出大写形式与常见的 16 位短码,并显示按 UTF-8 计算的字节数。全部计算在浏览器本地完成,文本不上传、不写入浏览器存储,也刻意不提供计算历史。需要明确的是:MD5 自 2004 年起已被证明存在实用碰撞攻击,只能用于非安全的快速校验。
MD5 至今仍大量出现在老系统里:老项目的密码字段、下载页的校验值、phpcms 与 Discuz 时代的 16 位短码。本工具一次给出 32 位小写摘要、大写形式与 16 位短码(取第 9~24 个字符),并显示 UTF-8 字节数,方便与各种历史口径对齐。
必须说清边界:MD5 自 2004 年起可人为构造碰撞,不能用于签名、证书与口令存储;校验下载是否损坏这类不对抗篡改的场景还可以继续用。新写的代码一律选 SHA-256。另外它运算极快,反而是口令存储的缺点——暴力破解成本太低,存密码要用 bcrypt 等慢哈希。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 把文本粘进输入框,32 位摘要即时生成。
- 需要大写形式或 16 位短码时,从结果下方取对应行。
- 与服务端比对前确认两边都按 UTF-8 编码。
- 安全场景(签名、密码)请改用 SHA-256 工具。
计算原理与示例
基本用法
在文本框粘贴或输入内容,摘要即时生成,三种输出同步给出:32 位小写放在主结果处(可一键复制),大写形式与 16 位短码在结果下方。改变任意一个字符——包括空格和换行——结果都会完全不同。
32 位与 16 位短码的关系
32 位摘要就是完整的 128 位结果;16 位短码是它的第 9~24 个字符,这是早年 phpcms、Discuz 等系统展示 MD5 的习惯截法。两者是同一份数据的不同展示形式,短码并不等于「更短的算法」,也谈不上更安全或更不安全。
为什么不该再用 MD5
MD5 自 2004 年起被证明可以人为构造碰撞:两个内容不同的文件能得到完全相同的摘要。因此它不能用于数字签名、证书与口令存储;只在「校验下载是否损坏」这类不需要对抗篡改的场景里,作为速度快的老工具继续存在。安全场景请改用本站的 SHA-256 工具。
计算口径:MD5 按 RFC 1321 实现,输入按 UTF-8 编码后计算;输出为 32 位小写十六进制,大写形式是同值的 A-F 大写,16 位短码取 32 位摘要的第 9~24 个字符(phpcms、Discuz 等老系统的通行截取位置)。不做加盐、不做 HMAC,也不校验输入编码转换。
代码示例
JavaScript Node 计算 MD5
const { createHash } = require("crypto");
createHash("md5").update("hello", "utf8").digest("hex");
// "5d41402abc4b2a76b9719d911017c592"
// 16 位短码 = 第 9~24 个字符
const full = createHash("md5").update(s).digest("hex");
full.slice(8, 24);
Shell 命令行计算
echo -n "hello" | md5sum # Linux(-n 必须加,否则多一个换行)
md5 -q file.zip # macOS
md5sum file.zip # Linux
常见问题
MD5 能把摘要还原成原文吗?
不能。MD5 是单向摘要,任意长度的输入都被压缩成 128 位,信息在这一步已经丢失,不存在逆运算。网上所谓「MD5 解密」其实是反查表:把常见字符串预先算好摘要做成字典,命中就显示原文——它只对弱口令和常见串有效,加盐或长随机串立刻失效。
16 位 MD5 和 32 位有什么区别?
16 位短码就是 32 位摘要的第 9~24 个字符,不是另一种算法,也没有提高安全性。它只是省略了首尾各 8 个字符,用于兼容 phpcms、Discuz 等老系统的展示习惯;新写的代码不应再截短,比对时也请用完整的 32 位。
MD5 是加密还是摘要?
是摘要(哈希)而不是加密。加密可逆,持有密钥就能还原;摘要不可逆,只能拿两个值比对。因此不存在「MD5 密钥」,把 MD5 当加密用是常见误解;需要可还原的保密存储应当用 AES 等真正的加密算法。
MD5 结果能用来校验文件有没有被改动吗?
可以对抗「无意损坏」(比如下载后比对官网给出的 MD5 值),但不能对抗「有意篡改」——攻击者可以构造出摘要相同的另一个文件。要做安全性校验,请使用官方站点的 SHA-256 值,或带签名的校验方式。
后台密码用 MD5 存着安全吗?
不安全。不加盐的 MD5 密码库一旦泄露,用彩虹表可以在极短时间内还原出大部分弱口令,而 MD5 运算又快,暴力破解的成本极低。正确做法是 bcrypt、scrypt、Argon2 这类专门为口令设计的慢哈希,并给每个用户随机加盐。
中文和英文混排时要注意什么?
注意编码口径:本工具统一按 UTF-8 编码,同一个汉字在不同编码下字节序列不同,摘要自然也不同。与服务端比对时先确认两边都用 UTF-8,否则会出现「明明是同一段文字,算出来却不一样」的情况。
MD5 和 SHA-1、SHA-256 该怎么选?
新的安全用途一律选 SHA-256 及以上;SHA-1 与 MD5 都已存在实用碰撞攻击,只保留在老系统的兼容场景。如果只是给静态资源生成不涉及安全的指纹,MD5 速度略快,但差距很小,没有理由为这点速度承担风险。
我输入的文本会被上传或保存吗?
不会。计算在浏览器本地完成,文本不经过服务器、不写访问日志,也不写入 localStorage——本工具刻意没有「计算历史」区块,正是因为输入里可能含口令或密钥。即便如此,真实口令仍建议不要粘到任何在线工具里。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。