免费开发工具 · 按字节计算,清晰比较

SHA-256 哈希生成器

为文本或文件生成 SHA-256 校验值,并与预期值比较。计算使用浏览器原生 Web Crypto API,在你的设备本地完成。

将文本框中的原文编码为 UTF-8 后计算;不去除空白、不执行 Unicode 规范化。空文本也可计算。

上限:UTF-8 文本 2 MiB · 文件 20 MiB · 通过 HTTPS 使用原生 Web Crypto

01 / 输入内容

最多 2 MiB(2,097,152 个 UTF-8 字节)。空格与换行都会影响校验值。

0 UTF-8 字节

示例仅可载入空文本框。载入示例前,请先清空文本。

文本、文件内容、文件名、哈希和预期校验值均在你的设备上处理。本工具不会上传这些数据,也不会将其保存到浏览器存储中。网站使用 Google Analytics 统计页面访问;不会将这些值作为分析事件发送。页面访问事件仅包含固定的页面网址。

02 / 校验结果

—

请输入恰好 64 位 ASCII 十六进制数字(0–9、A–F)。比较时忽略字母大小写及首尾空白。修改此值即可再次比较,无需重新计算哈希。

可选:粘贴预期校验值,与生成的哈希比较。

文本模式按文本框中的内容编码为 UTF-8 后计算。浏览器可能将粘贴文本的 CRLF/CR 换行转换为 LF。文件模式不解码内容,直接计算每个原始字节,包括 BOM 与换行。

如何生成并比较 SHA-256?

  1. 选择文本或文件模式。粘贴文本,或选择未超过显示上限的本地文件。
  2. 点击生成 SHA-256。空文本与空文件也有有效的哈希。
  3. 如需比较,粘贴来自可信来源的预期校验值。工具会自动明确显示匹配、不匹配或格式无效。
  4. 复制哈希。修改预期值时,无需再次读取文件或计算哈希。

校验值匹配就能证明文件安全吗?

不能。SHA-256 匹配不证明文件安全或来源可信。它仅说明计算出的校验值等于提供的预期值。攻击者可能同时替换文件及旁边公布的校验值。

尽可能通过可信、独立的渠道取得预期值;如果发布者提供签名,也应验证签名。本工具不扫描恶意软件、不验证签名,也不确认文件由谁提供。

什么是 SHA-256?

SHA-256 是一种密码学哈希函数,将输入字节映射为 256 位的值,通常显示为 64 位十六进制数字。相同字节会产生相同的值;改变一个空格、换行或字节,通常就会改变校验值。

哈希不是加密,没有解密操作。单独使用普通 SHA-256 不适合作为密码存储方案,也不等同于 HMAC 这样的带密钥认证码。

为什么相同文字与文件的哈希不同?

文本模式将文本框中的原文编码为 UTF-8,不去除空白、不执行 Unicode 规范化,也不额外添加 BOM。已存在的 U+FEFF 字符会保留。未配对的 UTF-16 代理项会被拒绝,不会静默替换。

文件模式直接读取原始字节。UTF-16 文件、带 BOM 的 UTF-8 文件,或使用 CRLF 而非 LF 换行的文件,都可能与看起来相同的粘贴文本产生不同哈希。浏览器文本框可能转换换行;需要保留原始字节时,请使用文件模式。

已知示例:abc,不含末尾换行

abc 的三个 UTF-8 字节会产生:

ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

添加末尾换行会得到不同的哈希。空文本或零字节文件的结果为:

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

预期校验值应使用什么格式?

仅粘贴一个 64 位 SHA-256 值,使用 ASCII 字符 0–9、a–f 或 A–F。大小写视为相同;仅在读取预期值时去除首尾空白。

不要包含 SHA256:、文件名、内部空格或校验列表。预期值无效不会停止哈希计算,也不会丢弃已选文件。清空预期值后,生成的哈希仍可使用。

为什么限制输入大小?

文本上限为 2 MiB UTF-8 字节,文件上限为 20 MiB。文件读取前会先检查大小。原生 SubtleCrypto.digest() API 不支持流式输入:整个文件及临时字节副本都会进入内存,因此峰值内存占用可能超过文件大小。

处理更大的文件时,可使用本地命令行工具,如 sha256sum、shasum -a 256 或 PowerShell 的 Get-FileHash -Algorithm SHA256。本页面不会将文件上传到服务器计算。

支持哪些浏览器?

本工具需要在安全上下文中使用原生 Web Crypto SHA-256,通常应通过 HTTPS 打开。文本模式还需要原生 TextEncoder。如果相关 API 不可用,会显示说明,不会改用替代算法。

编辑原文、选择其他文件、切换模式或清空内容,都会使旧结果失效。切换模式时,文本与文件选择分别保留。全部清空会移除两种输入及预期值;本工具不会持久保存这些内容。