Hash 计算工具
计算 SHA-1 / SHA-256 / SHA-384 / SHA-512 哈希摘要,支持文本与文件两种输入模式,HEX 与 Base64 两种输出格式。基于浏览器原生 SubtleCrypto,所有数据本地处理。
常见问题
SHA-1 / SHA-256 / SHA-512 有什么区别?
三者都是 SHA 系列密码学哈希函数,主要区别在于输出长度与安全性:SHA-1 输出 160 位(40 个十六进制字符),已被发现碰撞漏洞,不推荐用于安全场景;SHA-256 输出 256 位(64 个十六进制字符),属于 SHA-2 家族,目前安全,是 TLS 证书与区块链的常用算法;SHA-512 输出 512 位(128 个十六进制字符),安全性更高,在 64 位系统上性能反而优于 SHA-256。
为什么没有 MD5?
MD5 早在 2004 年就被证实存在严重碰撞漏洞,已被各大安全标准(如 PCI DSS、NIST)明确禁用。同时浏览器原生的 SubtleCrypto API 不支持 MD5,若要实现需引入第三方库,会增加约 30KB 的 bundle 体积。综合考虑安全性与性能,本工具不提供 MD5。若需校验文件完整性,建议使用 SHA-256 或更高级别算法。
哈希值可以反推出原文吗?
不能。哈希函数是单向的,从摘要几乎不可能还原出原文。理论上的碰撞攻击(如对 SHA-1 的选择前缀攻击)需要极大的计算资源,对 SHA-256 及以上算法目前仍不可行。因此哈希常用于存储密码(加盐哈希)、校验文件完整性、生成数字签名等场景。
HEX 和 Base64 输出有什么区别?
HEX(十六进制)每个字节用 2 个字符表示,仅包含 0-9 与 a-f,长度为字节数的 2 倍,便于人眼识别与对比。Base64 每 3 个字节用 4 个字符表示,包含 A-Z、a-z、0-9、+、/,长度比 HEX 短约 33%,常用于传输或存储。两者可以互相转换,表达的是同一份二进制数据。
计算过程会上传到服务器吗?
不会。本工具使用浏览器原生 crypto.subtle.digest API 在你本地完成所有计算,输入文本不会发送到任何服务器。
支持计算文件哈希吗?
支持。切换到「文件哈希」Tab,点击或拖拽文件到指定区域即可。文件通过 File API 流式读取,全部在浏览器本地计算,不会上传。支持同时勾选多个算法(如 SHA-256 + SHA-512)一次性计算,便于交叉校验。文件大小上限 100MB,避免浏览器内存爆炸。
为什么文件哈希限制 100MB?
浏览器原生 SubtleCrypto API 的 digest 方法需要完整的 ArrayBuffer 一次性计算(不支持流式增量哈希),文件需要全部读入内存。对 100MB 以上的文件,浏览器内存可能不足以容纳原始 buffer + 多算法 digest 的中间结果。如需计算超大文件哈希,建议使用本地命令行工具(如 sha256sum、certutil -hashfile)。