在线 MD5 哈希生成器与文件校验工具
在线生成 MD5、SHA-256、SHA-1、SHA-512 哈希值 — 完全免费,浏览器本地运算,无需注册。支持文本和文件哈希、校验和验证、哈希值对比,一键复制,数据绝不离开您的设备。
什么是 MD5 哈希生成器?
MD5 哈希生成器使用 MD5 算法将任何文本或文件转换为固定长度的 128 位(32 个十六进制字符)指纹。本工具还支持 SHA-1(40 个十六进制字符)、SHA-256(64 个十六进制字符)、SHA-384(96 个十六进制字符)和 SHA-512(128 个十六进制字符)。
哈希函数是单向的:您可以从输入计算哈希值,但无法通过哈希值还原原始数据。这使其非常适合验证文件完整性、生成校验和以及创建唯一标识符。
重要提示:MD5 和 SHA-1 在密码学上已被攻破,不应用于密码哈希或数字签名等安全用途。对于安全敏感的应用,请使用 SHA-256 或 SHA-512。对于密码存储,请改用 bcrypt、scrypt 或 Argon2。
所有哈希计算均完全在浏览器中运行——SHA 系列使用 Web Crypto API,MD5 使用纯 JavaScript 实现。您的数据不会离开设备——可通过浏览器的网络选项卡验证。
// Hash text using Web Crypto API (SHA-256)
async function sha256(text) {
const data = new TextEncoder().encode(text);
const hash = await crypto.subtle.digest('SHA-256', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
await sha256('Hello, World!');
// → 'dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f' 核心功能
5 种哈希算法
支持 MD5、SHA-1、SHA-256、SHA-384 和 SHA-512,一个工具全部搞定。一键切换算法,即时对比输出结果。
文本与文件哈希
支持对任意文本或上传的文件进行哈希计算,支持拖放操作。完美适用于验证文件完整性和生成校验和。
100% 浏览器端处理
所有计算均使用 Web Crypto API 在本地运行,数据不会发送到任何服务器——您的文件和文本完全私密。
即时输出结果
毫秒级获取哈希结果,一键复制到剪贴板,支持在大写和小写十六进制输出之间切换。
哈希算法对比
MD5
128 位 / 32 hex速度最快,但自 2004 年起已被密码学攻破。仅适用于非安全用途的校验和、缓存键和数据去重。不可用于密码或数字签名。
SHA-1
160 位 / 40 hex同样已被攻破 — Google 在 2017 年展示了实际碰撞攻击。所有主流浏览器和证书颁发机构已弃用。仅用于旧系统兼容。
SHA-256
256 位 / 64 hex当前安全哈希的行业标准。用于 TLS 证书、比特币和文件完整性验证。推荐用于大多数需要加密哈希的新项目。
SHA-512
512 位 / 128 hexSHA-2 家族中最强的选项。在 64 位处理器上实际比 SHA-256 更快。用于高安全性应用、SSH 密钥和 TLS 1.3 等协议。
示例
空字符串的 MD5 哈希
(空字符串)
d41d8cd98f00b204e9800998ecf8427e
MD5('') = d41d8cd98f00b204e9800998ecf8427e。空输入的 MD5 哈希值是一个众所周知的常量,常用于测试。
'Hello, World!' 的 SHA-256 哈希
Hello, World!
dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
SHA-256('Hello, World!') = dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f。SHA-256 生成 64 个字符的十六进制字符串。
文件 MD5 校验和
ubuntu-24.04-desktop-amd64.iso
(对比发布者提供的校验和)
使用「文件」选项卡计算文件的 MD5 校验和。将此哈希与发布者提供的校验和进行比较,可验证文件在下载过程中是否被篡改。
使用方法
- 1
选择输入模式
选择「文本」选项卡对文本内容进行哈希,或选择「文件」选项卡对设备上的文件进行哈希。
- 2
输入数据
在文本模式下,输入或粘贴您的内容。在文件模式下,拖放文件或点击上传区域进行浏览。
- 3
选择算法
从 MD5、SHA-1、SHA-256、SHA-384 或 SHA-512 中选择。默认选中 MD5。
- 4
生成并复制
点击「生成哈希」计算结果。使用「复制」按钮复制哈希值,或切换「大写」输出大写十六进制格式。
常见错误
换行符差异
不同操作系统使用不同的换行符——Unix/macOS 使用 LF(\n),Windows 使用 CRLF(\r\n)。在不同系统上复制的相同文本会产生不同的哈希值。
"Hello\r\nWorld" → 4a24aba0b89e5056... (CRLF)
"Hello\nWorld" → 68e109f0f40ca72a... (LF — normalize first)
字符编码差异
同一字符在 UTF-8 和 Latin-1(ISO-8859-1)中可能有不同的字节表示。即使文本看起来相同,也会产生不同的哈希值。
"café" (Latin-1, 4 bytes) → 5765dac89dc15ef4...
"café" (UTF-8, 5 bytes) → 5c462401420cd614... (always use UTF-8)
尾部空白字符
复制粘贴时不可见的尾部空格或换行符会改变哈希值。在比较哈希时,请始终修剪输入或注意尾部空白。
"Hello " (trailing space) → d3ed7e7e35011513...
"Hello" (no trailing space) → 8b1a9953c4611296...
常见使用场景
- 文件完整性验证
- 将下载文件的哈希值与发布者提供的校验和进行比较,确保文件未被损坏或篡改。
- 数据去重
- 对文件或数据块生成哈希值,快速识别重复内容,无需逐字节比较。
- 缓存键生成
- 从输入数据创建确定性哈希键,用于缓存失效、ETag 或内容寻址存储。
- API 签名验证
- 许多 API 在请求签名过程中使用 MD5 或 SHA-256。使用本工具手动验证或调试 API 签名。
技术细节
- MD5 算法
- MD5(消息摘要算法 5,RFC 1321)生成 128 位哈希值。它以 512 位块处理输入,经过 4 轮各 16 次运算。虽然速度快,但 MD5 在密码学上已被攻破——碰撞攻击可在数秒内完成。
- SHA 系列
- SHA-1 生成 160 位哈希值;SHA-256 和 SHA-384/512 属于 SHA-2 系列。本工具对所有 SHA 变体均使用浏览器原生的 Web Crypto API(crypto.subtle.digest()),确保最优性能和正确性。
- Web Crypto API
- SubtleCrypto.digest() 方法在所有现代浏览器中提供硬件加速的哈希计算。它接受 ArrayBuffer 输入并返回 ArrayBuffer 输出,我们将其转换为十六进制字符串进行显示。
最佳实践
- 不要将 MD5 用于安全目的
- MD5 在密码学上已被攻破,不要将其用于密码哈希、数字签名或证书验证。完整性校验请使用 SHA-256 及以上算法,密码存储请使用 bcrypt 或 Argon2。
- 校验和优先选用 SHA-256
- 当您需要可靠的文件完整性校验和时,SHA-256 是当前标准。速度快、抗碰撞性强、广泛受支持。
- 使用哈希验证下载内容
- 下载软件或镜像文件时,始终将哈希值与发布者提供的校验和进行比对。使用「文件」选项卡计算哈希并进行比较。
- 哈希的敏感性
- 哈希函数对输入变化极为敏感,即使一个比特的差异也会产生完全不同的哈希值。确保输入内容与您想要哈希的内容完全一致,包括空格和换行符。
常见问题
什么是 MD5 哈希?
MD5 还安全吗?
MD5 和 SHA-256 有什么区别?
如何验证文件校验和?
MD5、SHA-1、SHA-256 — 应该使用哪个?
能通过 MD5 哈希值还原原始文本吗?
使用本工具时我的数据安全吗?
为什么相同文本得到不同的哈希值?
可以对大文件进行哈希计算吗?
MD5 校验和与哈希有什么区别?
MD5 和加密是一回事吗?
如何在 JavaScript 或 Python 中生成 MD5 哈希?
import hashlib; hashlib.md5('文本'.encode()).hexdigest()。在 Node.js 中:require('crypto').createHash('md5').update('文本').digest('hex')。在浏览器 JavaScript 中,Web Crypto API 原生不支持 MD5,需使用 crypto-js 等库。或者直接使用本工具,无需编写代码即可快速生成哈希值。相关工具
查看所有工具 →随机密码生成器 - 在线生成
安全工具
免费在线随机密码生成器,一键生成高强度安全密码。支持自定义长度、字符类型,批量生成多个密码。所有密码仅在浏览器本地生成,不上传不存储。
UUID 生成器与解析器
安全工具
免费 UUID 生成器,支持 v1/v4/v5/v7 全版本即时生成。解析验证任意 UUID,批量生成最多 50 个。无需注册,100% 浏览器本地运行。
进制转换器 — 二进制、十六进制、十进制、八进制互转
转换工具
在线免费进制转换工具,支持二进制、八进制、十进制、十六进制及 2-36 任意进制互转。无需注册,数据不离开浏览器,即时获取结果。
Base64 解码与编码工具
编码和格式化
免费在线 Base64 解码编码工具。实时转换,支持中文和 Emoji,100% 浏览器端运行,数据不离开设备,无需注册。
在线图片压缩工具 – 免费批量压缩
转换工具
免费在线压缩 JPEG、PNG、WebP 图片,体积缩小高达 80%。浏览器本地处理、图片不上传服务器。支持批量压缩 20 张、质量调节、前后对比预览。无需注册。
JSON 格式化与验证工具
编码和格式化
在浏览器中即时格式化、验证和美化 JSON。免费在线工具,支持语法验证、错误检测、压缩和一键复制,100% 隐私保护。