跳到正文
马克工具箱

哈希值计算

计算文本或文件的 MD5、SHA-1、SHA-2、SHA-3、BLAKE2、BLAKE3、RIPEMD-160 哈希值,用密钥生成 HMAC,并把下载文件与官方校验值进行比对。几 GB 的文件也会分块在本地读取。

在浏览器本地运行,输入的内容和文件都不会上传

算法

MD5⚠
d41d8cd98f00b204e9800998ecf8427e
SHA-1⚠
da39a3ee5e6b4b0d3255bfef95601890afd80709
SHA-256
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA-512
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
⚠ MD5 / SHA-1: 已不具备抗碰撞性:可用于校验文件完整性,不要用于安全场景。

使用步骤

  1. 选择「文本」直接输入,或选择「文件」并选取任意大小的文件。
  2. 勾选需要的算法,默认已选 MD5、SHA-1、SHA-256、SHA-512。
  3. 需要带密钥的哈希时,勾选 HMAC 并输入密钥。
  4. 校验下载文件时,把官网公布的校验值粘贴到「比对」框,一致的那一行会被标记出来。

参数说明

MD5 / SHA-1
速度快,至今仍广泛用于文件校验,但已不再安全:攻击者可以构造出哈希相同的两个输入。不要用于签名或存储密码。
SHA-256 / SHA-512
SHA-2 家族,是完整性校验、数字证书、区块链的标准选择。
SHA-3 / BLAKE2 / BLAKE3
较新的算法。BLAKE3 在软件实现中比 SHA-2 快很多;SHA-3 是 NIST 标准,内部结构与 SHA-2 完全不同。
HMAC
带密钥的哈希,用于 Webhook 和 API 请求签名,例如 GitHub、Stripe 的 Webhook 都使用 HMAC-SHA256;微信支付 V2 的签名也支持 HMAC-SHA256。

各算法的输出长度

算法 输出 十六进制长度
MD5 128 位 32
SHA-1 160 位 40
SHA-256 / SHA3-256 / BLAKE3 256 位 64
SHA-384 384 位 96
SHA-512 / SHA3-512 / BLAKE2b 512 位 128

示例

abc 的 SHA-256 值是:

ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

在终端里得到同样的结果:Linux 用 echo -n abc | sha256sum,macOS 用 echo -n abc | shasum -a 256,Windows PowerShell 可用 Get-FileHash 计算文件哈希。

常见问题

怎么校验下载文件是否完整?

选择「文件」并选中下载的文件,把官网上公布的校验值粘贴到「比对」框。显示「一致」就说明文件与发布者计算时的文件完全相同。

文件会上传吗?

不会。浏览器以 4MB 为单位分块读取文件并在本地计算,即使是几 GB 的系统镜像也不会离开你的电脑。

哈希值能反推出原文吗?

不能,哈希是单向的。但简短或常见的输入(比如 123456)可以通过查表找到,所以存储密码必须使用加盐的慢哈希算法(bcrypt、Argon2),而不是直接 MD5 或 SHA-256。

为什么算出来和其他工具不一样?

通常是输入不同:末尾多了换行、有空格,或者文本编码不同(UTF-8 与 GBK 的中文字节不同)。本工具按输入内容的 UTF-8 字节计算。命令行里 echo 会自动加换行,要用 echo -n。

哈希和 HMAC 有什么区别?

任何人都能计算公开数据的哈希;HMAC 还需要密钥,因此可以证明消息来自持有密钥的一方,并且没有被篡改。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具