跳到正文

文本哈希计算

Text Hash

算出字符串的 MD5、SHA-1、SHA-256、SHA-384、SHA-512 和 CRC-32,输出可选大写或 Base64。

一次用 MD5、SHA-1、SHA-256、SHA-384、SHA-512和CRC-32 对文本或文件做哈希,并能把结果和你粘贴的校验和比对。文本按 UTF-8 字节哈希,其他任何工具说「对字符串做了哈希」时指的也是这个。

🔒 完全在你的浏览器里运行hashmd5sha256checksum
输出

输入

拖入一个文件来算校验和

在这个标签页里读取,不上传。

文本按 UTF-8 字节做哈希,这也是别的工具说“给字符串算哈希”时的意思。

摘要

粘贴一个公布的校验和,对上的那一行会亮起来。

每种算法一行,带摘要和一个复制按钮。
算法摘要复制
MD5造一次碰撞很便宜。当校验和还行,签名和密码就别用了。
SHA-1碰撞已经被实际做出来过。老的校验和还能用,新的东西别碰。
SHA-256
SHA-384
SHA-512
CRC-32这是检错码,不是哈希。两个文件可能碰巧撞上同一个值,故意撞就更容易。

输入

0 B

来源

文本框

怎么用

  1. 输入文本或拖入文件

    所有算法同时计算,所以没有一个会选错的算法选择器。拖入的文件在这个标签页里读取,从不上传。

  2. 粘贴公布的校验和

    「比对」框会点亮匹配的那一行,所以你不必知道发布者用的是哪种算法——也不必用肉眼比对 64 个十六进制字符。

  3. 需要 Base64 时切换输出格式

    小写十六进制、大写十六进制和 Base64。摘要是同样的字节;变的只是写法。

常见问题

我该用哪一个?

没有别的要求就用 SHA-256。MD5 和 SHA-1 存在实际可行的碰撞攻击——发现意外损坏没问题,用在任何有人可能故意构造第二个文件的场合就不行。CRC-32 根本不是哈希;它是一种检错码。

我能用它给密码做哈希吗?

能,但你不该存储结果。密码需要一个慢的、加盐的函数——bcrypt、scrypt、Argon2——正因为 SHA-256 快:一块 GPU 每秒算几十亿次。本站的 bcrypt 工具才是对的页面。

为什么同样的文本在别处得到不同的哈希?

几乎总是末尾的换行,或者不同的编码。`echo "abc"` 发四个字节,`echo -n "abc"` 发三个,存成 UTF-16 的文件和同样文本的 UTF-8 是完全不同的字节。哈希是对字节做的,不是对你看到的东西。

计算哈希时我的文件会上传吗?

不会。哈希在这个标签页的字节上运行,SHA 家族走浏览器自己的 WebCrypto。这也是它断网也能用的原因。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。