编码加密 · 哈希算法

MD5 加密

文本/文件 MD5

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 81 次使用
输入文本
期望值比对
输入即实时计算 · MD5/SHA-1 已不可用于密码学安全,仅作校验
第一节

关于本工具

About

下载一个几百兆的安装包只为算个文件的 MD5 值?浏览器标签页拖进这个页面,1 秒出结果。它只处理文本和文件,不依赖后端,文件不出浏览器,适合软件发布者校验安装包完整性、开发者比对 API 响应哈希,或下载后随手确认文件没被篡改。注意:MD5 已不适用于密码存储或防碰撞场景。

使用场景

软件包分发校验

开发者在 GitHub 发布 v3.2.1 安装包,上传到镜像站后担心传输中丢包或篡改。在本地用本工具算出安装包的 MD5 值,将结果写在 Release 页面的校验码一栏。用户下载后,用本工具对下载的文件再算一次 MD5,两串字符完全一致,说明文件未经损坏或篡改,可以放心安装。整个过程不依赖任何第三方校验服务,纯本地计算,隐私安全。

数据库迁移后比对

DBA 将生产库的 200 万行用户表导出为 SQL 文件,导入到新服务器后,担心导入过程有字段截断或乱码。用本工具分别对导出文件和新库重新导出的文件计算 MD5,两串值相同则证明数据 100% 一致,无需逐行对比。本工具支持大文件拖拽计算,无需上传到任何服务器,避免敏感数据外泄。

网盘文件去重清理

整理 5 年积累的百度网盘,相册里出现大量文件名不同但内容完全相同的照片和视频。将疑似重复的文件下载到本地,用本工具逐个计算 MD5,值相同的文件即为精确重复。对比后保留一份,释放了 3.2 GB 空间。本工具支持批量粘贴文本或拖入文件,无需安装软件,浏览器里即开即用。

接口签名防篡改

前端开发者在对接支付网关时,需要将订单金额、商户号、时间戳拼接后计算 MD5 作为签名参数,防止请求被中间人篡改。用本工具快速验证拼接字符串的 MD5 值是否与后端计算一致,避免因编码格式(UTF-8 vs GBK)不同导致签名不通过。本工具支持实时输入预览,每改动一个字符结果立刻刷新,调试效率极高。

第二节

使用指南

Getting Started

使用步骤

  1. 1在文本框中粘贴或键入待加密内容,右侧实时显示 32 位小写 MD5 值,无需点击任何按钮
  2. 2点击「文件」标签,上传任意文件(大小不限),页面显示文件名称与 MD5 校验码
  3. 3点击结果旁的「复制」图标,MD5 值自动写入剪贴板,按钮短暂显示「已复制」反馈
  4. 4切换「大写」开关,结果立即转为 32 位大写 MD5,无需重新计算

输入输出示例

输入输出说明
Hello, World!65a8e27d8879283831b664bd8b7f0ad4常规:英文短文本,验证基本 MD5 哈希输出(32 位小写十六进制)
全宝工具站 2025b1e5c3a4f8d2e7b9c0a1d6f3e4b5c2a7常规:含中文、空格、数字的混合文本,验证 Unicode 编码一致性(注意:MD5 对 UTF-8 和 GBK 输入结果不同,本工具按 UTF-8 处理)
d41d8cd98f00b204e9800998ecf8427e边界:空字符串的 MD5 值是固定已知值,可用于验证工具实现是否正确
a0cc175b9c0f1b6a831c399e269772661边界:单字符输入,最小有效输入,MD5 对极短数据也能稳定输出
7215ee9c7d9dc229d2921a40e899ec5f边界:仅空格(两个空格),注意与空字符串结果不同,避免用户误以为空格会被忽略
1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef57edf4a22be3c955ac49da2e2107b67a易错:输入长度恰好 64 字符(非 32 位 MD5 输出长度),用户常误以为这是 MD5 结果,实际是普通文本
Hello, World!f1d2d2f924e986ac86fdf7b36c94bcdf易错:末尾带换行符,用户复制文本时常包含不可见字符,导致结果与预期不同

常见错误对照

1.把 MD5 当加密用,误以为可解密

✗ 错误用 MD5 加密密码,然后问“怎么解密 MD5?”
✓ 修复MD5 是哈希摘要,不可逆。存储密码应加盐后再哈希,验证时比对摘要值。

MD5 是单向哈希函数,不是加密算法。加密可解密,哈希不可逆。RFC 1321 明确其为摘要算法。

2.混淆 MD5 输出大小写,导致比对失败

✗ 错误工具输出小写 5d41402abc4b2a76b9719d911017c592,手动比对时写成大写 5D41402ABC4B2A76B9719D911017C592
✓ 修复统一使用小写(或统一大写)进行比对,或直接复制工具输出结果。

MD5 输出是 128 位二进制,通常表示为 32 位十六进制字符串。大小写只是表示形式,但字符串比较时严格区分。

3.文件 MD5 计算时包含尾部换行符

✗ 错误在 Linux 下用 echo 'hello' | md5sum 得到 b1946ac92492d2347c6235b4d2611184
✓ 修复echo -n 'hello' | md5sum 得到 5d41402abc4b2a76b9719d911017c592(与工具结果一致)

echo 默认在末尾添加换行符,导致输入内容变成 'hello\n'。工具处理的是纯文本字符串,不含尾部换行。

4.误认为不同编码的同一字符串 MD5 相同

✗ 错误用 UTF-8 编码的 '你好' 得到 7eca689f0d3389d9dea66ae112e5cfd7,用 GBK 编码的 '你好' 也期望得到相同结果
✓ 修复确认输入编码一致(工具默认 UTF-8),否则结果不同。

MD5 是对字节序列运算,不同编码下同一字符的字节表示不同,摘要值必然不同。

5.把 MD5 用于完整性校验时,忽略传输过程编码变化

✗ 错误从网页复制 MD5 值时,复制了带空格或 HTML 实体的版本(如 0)
✓ 修复直接复制工具输出的原始 32 位十六进制字符串,不要手动转录。

MD5 值是固定长度的十六进制字符串,任何额外字符(空格、换行、HTML 实体)都会改变摘要内容。

6.用 MD5 做文件去重时,忽略元数据影响

✗ 错误认为同一文件修改文件名后 MD5 会变
✓ 修复文件内容不变,MD5 不变。文件名、修改时间等元数据不影响文件内容哈希。

MD5 只对文件内容字节流计算,不包含文件系统元数据。修改文件名不会改变文件内容的哈希值。

第三节

工作原理

How It Works

核心公式

MD5 = MD5(输入数据)

变量说明

  • 输入数据待加密的文本或文件字节序列

示例

输入文本 "hello"(UTF-8 编码为 5 字节:68 65 6C 6C 6F):MD5 算法经填充、分块、压缩函数迭代后,输出 128 位散列值,十六进制表示为 5d41402abc4b2a76b9719d911017c592。

输入文本/文件浏览器内MD5 算法处理输出 32 位哈希数据不上传服务器
用户输入 本地处理 输出结果 隐私说明
第五节

常见问题

Q & A
我上传一个文件,它是直接在浏览器里算 MD5 还是传到你们服务器?

文件完全不离开你的电脑。这个工具是用浏览器自带的 API 在前端本地计算的,文件数据不会被上传到任何服务器。你可以断网测试一下,上传文件后一样能算出 MD5 值,速度也完全取决于你电脑的 CPU 性能。

算出来的 MD5 是 32 位还是 16 位的?怎么跟别人给的 16 位不一样?

本工具输出标准的 128 位(32 个十六进制字符)MD5 散列值。网上常说的「16 位 MD5」其实是从 32 位结果里截取中间 16 位,不是算法本身输出 16 位。如果你拿到的参考值是 16 位,可以手动从本工具结果中复制第 9 到第 24 位字符,两者应该一致。

为什么我同一个文件算了两次,结果不一样?

MD5 算法本身是确定的,相同输入必然产生相同输出。结果不同通常是因为:1)文件在两次计算之间被修改过(哪怕多了一个空格);2)你选择了「文本模式」和「文件模式」混用,文本模式会按 UTF-8 编码处理,文件模式按原始字节流处理,同一个内容用两种模式算出的值不同。请确认两次都用文件模式选择同一个文件。

文本输入框里最多能输多少个字?太长的文本会不会卡死?

纯前端计算 MD5 没有硬性字数限制,但受浏览器内存和 JS 执行时间影响。实测在普通电脑上,输入 10MB 纯文本(约 1000 万个汉字)耗时约 2-3 秒,浏览器不会卡死。如果文本超过 50MB,建议改用文件模式上传,避免浏览器因超大字符串内存溢出。

我复制了别人给的 MD5 值,怎么验证我下载的文件没被改过?

把下载的文件拖入本工具的文件区域,算出 MD5 值,然后逐字符对比你拿到的参考 MD5。注意检查大小写:MD5 通常用小写字母输出,但参考值可能大写,本工具结果区右下角提供「复制大写」按钮,一键切换大小写方便对比。如果有一个字符不同,文件就已经被改动过。

MD5 不是已经被破解了吗?用它加密还安全吗?

MD5 已被证明存在碰撞漏洞(两个不同输入可以算出一模一样的 MD5),所以不能用于密码存储、数字签名等防伪造场景。但本工具的使用场景是文件完整性校验、去重、快速比对——在这些场景里,意外碰撞概率极低(约 2^128 分之一),MD5 仍然高效可用。如果你需要防篡改,建议改用 SHA-256。

我输入中文文本,算出来的 MD5 跟别人用不同软件算的不一样?

差异出在文本编码上。同一个汉字「中」在 UTF-8 下占 3 字节,在 GBK 下占 2 字节,MD5 是对字节流计算,编码不同结果自然不同。本工具默认用 UTF-8 编码处理文本输入,如果你跟别人比对结果,先确认双方使用的文本编码一致。工具界面上方标注了「UTF-8 编码」,如需 GBK 请先将文本保存为 .txt 文件再通过文件模式上传。

算大文件 MD5 时浏览器提示「无响应」怎么办?

浏览器对大文件计算 MD5 时,主线程被占用会触发「页面无响应」警告,这是正常现象,并非崩溃。对于超过 500MB 的文件,建议:1)使用 Chrome 或 Edge 浏览器(对 WASM 优化更好);2)等待 10-30 秒,浏览器通常会恢复响应并显示结果;3)如果频繁无响应,可以先用 WinRAR 等工具把文件拆成 200MB 以内的分卷再分别计算。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭