使用方法
- 选择“文本”并输入或粘贴文本,或选择“文件”并选取或拖入文件。
- 查看 MD5、SHA-1、SHA-256、SHA-384 和 SHA-512 的值。可切换为小写十六进制、大写十六进制或 Base64。
- 要验证下载文件,请将提供方公布的校验和粘贴到比对框中。匹配的算法会突出显示。
- 复制单个哈希值,或使用“全部复制”复制所有哈希值及其算法名称。
工作原理
哈希函数会将任意输入转换为固定长度的指纹。同一输入始终会生成相同的哈希值;即使只改变一个比特,结果也会完全不同。因此,哈希可用于检查文件下载后是否损坏或被篡改。
SHA-1、SHA-256、SHA-384 和 SHA-512 使用浏览器内置的 Web Crypto API 计算。Web Crypto 不支持 MD5,因此本页面包含了根据 RFC 1321 实现的 MD5,并已使用标准测试向量验证。文本在计算哈希前会转换为 UTF-8 字节,因此“é”会按两个字节计算,末尾的空格或换行也会改变结果。
MD5 和 SHA-1 已不适用于安全用途:研究人员可以构造出哈希值相同的不同输入。它们仍可用于检测意外损坏,以及与服务提供方公布的校验和进行比对,但不要用于签名或证书。不要使用普通哈希存储密码;请使用 Argon2、scrypt 或 bcrypt 等较慢的密码哈希算法。
本工具会将最大 200 MB 的文件读入内存。MD5 会分块计算,并在每块之间短暂暂停,以保持页面响应流畅;同时会显示进度信息。在手机上处理超大文件可能需要几秒钟。
示例
验证下载的 ISO 文件
Linux 下载页面提供了 SHA-256 校验和。选择“文件”,拖入 .iso 文件,将公布的值粘贴到比较框中,然后查看是否显示“匹配:… SHA-256”。如果不匹配,说明文件不完整或不是原始文件。
常见测试值
文本“abc”的 MD5 哈希值为 900150983cd24fb0d6963f7d28e17f72,SHA-256 哈希值为 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad。可用它检查其他工具是否得出相同结果。
用于 HTTP 标头的 Base64
子资源完整性(Subresource Integrity)和某些 API 需要以 Base64 而非十六进制形式提供 SHA-256 或 SHA-384 哈希值。将输出格式切换为 Base64,然后复制 SHA-384 值。
常见问题
为什么同一段文本在其他工具中算出的哈希值和我的不一样?
通常是输入存在不易察觉的差异:末尾换行、Windows 换行符(CRLF)、文本编码不同,或开头有空格。本工具会严格按照输入框中的内容计算其 UTF-8 字节的哈希值。
可以通过哈希值还原原始文本吗?
不能。哈希函数是单向的。不过,仍可以通过尝试猜测来找到较短或常见的输入,这也是密码需要使用加盐的慢速密码哈希算法,而不能使用普通哈希的原因。
MD5 现在还安全吗?
不适用于安全用途。可以故意构造出 MD5 和 SHA-1 碰撞,因此不能用它们防范蓄意篡改。它们仍可用于检查意外损坏,但 SHA-256 是更好的默认选择。
我的文件会上传吗?
不会。文件通过浏览器的 File API 读取,并在当前标签页中计算哈希。任何内容都不会发送到服务器;页面加载后即可离线使用。
我可以计算哈希的最大文件有多大?
200 MB。整个文件都会加载到内存中,因此较大的文件可能会耗尽手机和旧电脑的内存。处理更大的文件时,请使用 sha256sum 或 certutil 等命令行工具。
隐私
文本和文件仅在浏览器中计算哈希,不会上传。输入内容和哈希值都不会被存储或发送到分析服务;我们只会记录一条匿名的工具使用事件。