SHA-256 在线计算工具
输入任意文本,实时生成 SHA-256 摘要(64 个十六进制字符)。全部计算在浏览器本地完成,文本不会上传服务器——适合校验 API 签名、核对密码哈希、验证数据完整性。支持中文与任意 UTF-8 字符,上限 10MB。
SHA-256 是目前仍在安全场景通用的哈希算法:校验下载文件、核对 API 签名、生成缓存键都用它。把文本粘进来即得 64 位十六进制摘要;它是确定性函数,相同输入永远得到相同输出,改变任何一个字符(哪怕一个空格)结果都会完全不同——这正是它能当指纹用的原因。
两个常被忽略的口径:一是编码,本工具按 UTF-8 计算,与服务端比对前先确认两边编码一致,否则同一段文字会算出不同值;二是不可逆,哈希不是加密,无法从摘要还原原文,网上的解密只是彩虹表反查。安全用途请优先 SHA-256,MD5 与 SHA-1 只留给老系统兼容。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 把文本粘进输入框,摘要实时生成。
- 复制 64 位十六进制结果,与对方给出的值逐位比对。
- 对不上时先查编码(UTF-8)与内容范围(是否多复制了换行或空格)。
- 校验文件时改用文件哈希校验工具,或直接用命令行。
计算原理与示例
基本用法
在文本框粘贴或输入内容,摘要实时生成;改变任何一个字符(哪怕一个空格)结果都会完全不同。
输出与校验
输出为 64 个十六进制字符(256 位)。比对校验值时请确认编码一致——本工具按 UTF-8 编码,「你好」和同一串字符用 GBK 编码的哈希不同。
为什么不可逆
SHA-256 是单向函数:无法从摘要反推原文。验证密码时是「对输入算哈希后比对」,而不是「解密哈希」。
代码示例
JavaScript 浏览器 WebCrypto 计算
// 异步接口,输入按 UTF-8 编码
const buf = await crypto.subtle.digest(
"SHA-256", new TextEncoder().encode(text));
const hex = [...new Uint8Array(buf)]
.map((b) => b.toString(16).padStart(2, "0")).join("");
Shell 命令行计算
# 文本(注意 -n 去掉末尾换行,否则结果不同)
echo -n "hello" | shasum -a 256
# 文件
shasum -a 256 file.zip # macOS / Linux
# Windows(cmd)
certutil -hashfile file.zip SHA256
常见问题
SHA-256 能被解密吗?
不能。哈希是单向压缩,数学上不可逆。网上所谓的「解密」其实是彩虹表——预先算好常见字符串的哈希反查。这也是为什么存密码必须加盐:让彩虹表失效。
为什么同一个字符串每次算的结果一样?
SHA-256 是确定性函数:相同输入永远得到相同输出,这正是它能做校验的原因。有随机性需求的是加盐哈希(每次加不同的盐)或 HMAC,不是 SHA-256 本身。
空字符串也有哈希吗?
有。空字符串的 SHA-256 是 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,这是一个著名的标准测试向量,可用于验证哈希工具本身是否正确。
SHA-256 的输出长度是多少?
固定输出 256 位,即 64 个十六进制字符(32 字节)。无论输入多长,摘要长度都不变,这是哈希函数的基本特性,也是它能用于大文件完整性校验的原因。
哈希、加密、编码有什么区别?
哈希是单向的,无法还原原文,用于校验和生成指纹;加密是可逆的,持有密钥才能还原,用于保密传输;编码(如 Base64)只是改变表示形式,任何人可还原,不提供安全性。三者用途完全不同。
SHA-256 和 MD5 哪个更好?
优先用 SHA-256。MD5 和 SHA-1 已被证明存在碰撞攻击(能找到两个不同输入得到同一摘要),不再适合安全用途,只能用于非安全的快速校验。SHA-256 目前仍被认为是安全的。
大文件也能在线算哈希吗?
本工具在浏览器本地计算,适合文本和约 10MB 以内的文件。更大的文件建议用命令行:Windows 可用 certutil -hashfile 文件名 SHA256,macOS / Linux 用 shasum -a 256 文件名,既快又不必上传文件。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。