CodeKitHub
生成器工具

MD5 在线生成器

最后更新:

MD5 哈希值的长度永远是 128 位——写成 32 个十六进制字符——无论输入是一个单词还是一整个文件。输入或粘贴任意文本,立即得到它的 MD5 哈希值——同时附赠 SHA-1 和 SHA-256,因为现代系统越来越多要求使用它们。所有计算都在浏览器本地完成,输入内容不会被传输。

MD5
SHA-1
SHA-256

工具介绍

MD5 是一种哈希函数,把任意输入转换成固定 32 位十六进制字符的"指纹"。相同输入永远产生相同哈希,改动一个字符结果就完全不同。因此哈希常用于校验和、缓存键、去重和数据完整性检查。

安全提示:MD5 在密码学上已被攻破——可以人为构造碰撞——所以绝不能用于密码存储或签名。这类场景请用 SHA-256(下方同时提供)或 bcrypt 等专用密码哈希。MD5 用于校验和、缓存键等非安全用途仍然没问题。

MD5 的历史可以追溯到 1992 年,当年 Ron Rivest 以 RFC 1321 的形式发布了它——这也是为什么尽管弱点尽人皆知,仍有这么多老系统在要求使用它。

为什么使用它?

  • 生成校验和,验证文件或字符串没有被意外改动。
  • 生成确定性的缓存键和去重 ID。
  • 与已知 MD5 对比,检查数据完整性。
  • 同时给出 SHA-1 和 SHA-256,不用再找第二个工具。
  • 100% 本地计算:输入内容不离开浏览器。

使用方法

  1. 在输入框输入或粘贴文本。
  2. 点"计算哈希"。
  3. 查看 MD5、SHA-1、SHA-256 结果(系统要求大写时勾选"大写输出")。
  4. 点对应哈希旁的"复制"。

示例

输入

hello

输出

MD5:     5d41402abc4b2a76b9719d911017c592
SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

哈希是确定性的:"hello"在任何工具上、任何时候都得到这些完全相同的值。

该用哪种哈希?

三种都是单向哈希,但不能随便换用——该选哪个完全取决于你是要安全性还是只要一个指纹。

算法输出长度适用场景不适用场景
MD5128位(32个十六进制字符)校验和、缓存键、去重、检测文件是否被意外改动密码、数字签名,任何安全相关场景——碰撞可以被人为构造
SHA-1160位(40个十六进制字符)兼容老系统(比如旧版Git提交哈希)新的安全相关设计——2017年起已有实际可行的碰撞攻击
SHA-256256位(64个十六进制字符)数字签名、TLS证书、区块链、需要防篡改的校验和直接存密码——即使SHA-256也太快,容易被暴力破解,存密码请用bcrypt、scrypt或Argon2

常见使用场景

  • 下载文件后,通过对比自己算出的哈希和发布方公布的校验和,确认文件没被篡改。
  • 根据URL或查询字符串生成确定性的缓存键,相同请求永远映射到同一个缓存条目。
  • 给大批量记录去重时,用哈希对比代替直接比较全文。
  • 快速检查两份文件是否字节级完全相同,不用打开或逐行diff。

为什么碰撞对安全场景致命,对校验和无所谓

哈希碰撞是指两个不同输入产生相同的哈希输出——对任何哈希函数来说数学上都不可避免(输入无穷、输出定长),但实际风险完全取决于使用场景。对安全签名来说,蓄意构造的碰撞能让攻击者用恶意文件替换合法文件却保持同样的哈希值——这正是2004年起针对MD5、2017年起针对SHA-1被实际演示过的攻击。对校验和或缓存键来说,没人在故意构造碰撞——你只是想确认文件有没有意外损坏,或者两个任意字符串是否恰好相同——所以让MD5安全场景失效的同一个数学弱点,对它的非安全用途基本没有影响。

需要同时比较多种算法吗?

如果你想并排查看同一段文本的 MD5、SHA-1、SHA-256、SHA-384 和 SHA-512,而不是逐个查看,请使用我们的多算法对比工具。

多算法哈希生成器

常见问题

MD5 可以解密还原成原文吗?

不能——哈希在设计上就是单向的,无法从哈希反推原文。所谓"MD5解密"网站只是在巨大的常见输入对照表里查询,所以独特的输入是查不到的。

用 MD5 存密码安全吗?

绝对不安全。MD5 暴力破解速度极快,且存在已知碰撞攻击。存密码请用 bcrypt、scrypt 或 Argon2。MD5 只适合校验和等非安全用途。

为什么同样的文字在别的工具算出的哈希不一样?

通常是看不见的差异:末尾多了换行或空格、换行符不同(\r\n 和 \n)、或文本编码不同。字节完全相同的输入,哈希一定相同。

MD5、SHA-1、SHA-256 有什么区别?

输出长度和安全性不同:MD5(128位)和 SHA-1(160位)在安全场景都已被攻破;SHA-256(256位)是当前标准,依然安全。拿不准就用 SHA-256。

我的文本会被发送到服务器计算吗?

不会。MD5 用 JavaScript 计算,SHA-1/SHA-256 用浏览器内置的 Web Crypto API——一切都在你的设备上完成。

相关工具