免费转换器

MD5哈希 生成器

在浏览器中即时从文本或文件生成MD5哈希值。免费、私密,无需上传。

关于此工具

MD5(消息摘要 5)是 Ronald Rivest 于 1991 年发布的一种 128 位加密哈希函数。它接受任意长度的输入并生成固定的 32 字符十六进制输出,该输出是确定性的(相同的输入总是生成相同的哈希值)并且是单向的,这意味着无法仅从哈希值中恢复输入。 MD5 是 20 世纪 90 年代和 2000 年代初占主导地位的通用哈希函数,后来被用于加密目的的 SHA-2 系列函数取代。

MD5 已被破坏用于加密用途。自 2004 年以来,实际的碰撞攻击(找到产生相同散列的两个输入)已经得到证实,并且现在可以在商用硬件上在数小时内实现选择前缀碰撞。请勿将 MD5 用于密码散列、数字签名、证书指纹或任何需要抗冲突的环境。 SHA-256 和 bcrypt 是合适的替代品。

MD5 对于防碰撞不是安全属性的非加密校验和仍然有用:检测意外文件损坏、在您控制的系统中删除重复上传以及为缓存密钥生成短标识符。该生成器使用 JavaScript MD5 实现完全在您的浏览器中运行;没有输入离开您的设备。

为什么要生成 MD5 哈希值

快速文件完整性检查仍然是最可靠的 MD5 用例。当下载站点将 MD5 与文件一起发布时,读者可以验证下载是否完好无损。该检查可以防止传输错误,而不是恶意篡改(老练​​的攻击者可以生成与任何选定的 MD5 相匹配的文件),但对于随意的完整性验证来说,这是可以的。

MD5 也可用作确定性短标识符。缓存层、重复数据删除系统和 ETag 生成通常使用 MD5 对内容进行哈希处理,因为结果很短、计算速度很快,并且对于非安全目的来说足够好。新设计应该更喜欢 SHA-256 或 xxHash,但使用 MD5 作为标识符的现有系统在这个角色中并不是不安全的。

使用方法

粘贴文本或上传文件,获取 32 个字符的十六进制哈希值。

  1. 添加输入: 粘贴文本或上传文件。哈希器接受任意输入——字符串、二进制文件、大型文档。
  2. 计算: MD5 算法处理 512 位块中的输入,应用四轮非线性函数和模加法,并生成 128 位摘要。该实现是在浏览器端进行的,典型输入的运行时间为毫秒。
  3. 读取哈希值: 输出为 32 个十六进制字符,即 128 位摘要的标准文本表示形式。复制它以供验证或存储。
  4. 与预期值进行比较: 如果您有已发布的参考哈希,请逐个字符进行比较。任何差异都意味着输入不是您所期望的。

常见用例

技术细节

MD5 以 512 位(64 字节)块的形式处理输入。每个块通过四轮操作更新 128 位内部状态。每轮应用不同的非线性函数、模加法和按位旋转。最终状态是摘要。

该算法需要填充:输入附加 1 位,然后附加 0 位,然后附加 64 位长度字段,以便总长度是 512 位的倍数。这确保每个输入都具有唯一的长度前缀编码。

输出被解释为小端顺序的 16 个字节,然后打印为 32 个十六进制字符。有些工具打印大写,有些工具打印小写;值是相等的。

最佳实践

常见问题

我可以自定义生成的输出吗?
是的。该工具提供了各种自定义选项,可以根据您的特定需求定制输出。在生成之前调整设置,或使用不同的选项重新生成。
生成的内容可以免费使用吗?
是的。您使用此工具生成的所有内容都可以用于个人、教育或商业目的,没有任何限制或归属要求。
这个需要账号吗?
不需要。该工具无需注册、无需电子邮件、无需注册即可立即使用。只需打开页面并开始生成。
我的输入数据是否保密?
是的。所有处理都发生在您的浏览器中。您的输入数据和生成的输出永远不会发送到任何外部服务器。
大写或小写十六进制正确吗?
两者是等价的。大多数实现默认生成小写字母。比较应该不区分大小写。
我的输入是否上传到服务器?
不会。散列完全发生在您的浏览器中。
MD5 和 SHA-1 有什么区别?
SHA-1 是一种不同的 160 位哈希函数。截至 2017 年,SHA-1 在加密用途方面也已被破坏。两者对于非安全用途都是可接受的;当抗碰撞性很重要时,两者都不应该使用。
两个不同的输入可以产生相同的MD5吗?
是的——那是一次碰撞。随机碰撞在天文上是不可能的,但故意构造的碰撞现在可以计算。