SHA256 哈希计算指南:UTF-8、SHA-384 与 SHA-512
ToolMellow ·
密码学哈希将字节序列转换为固定长度的摘要。ToolMellow 将格式完整的 Unicode 文本编码为 UTF-8,计算 SHA-256、SHA-384 或 SHA-512,然后显示小写十六进制结果。选择“算法”,点击“生成哈希”。操作在本地浏览器工作线程中运行,不会上传输入来计算哈希。
这是文本摘要工具,不会计算任意导入文件原始字节的精确校验和,不加密数据,不恢复原文,不验证签名,也不提供密码存储系统。本指南解释结果的含义、看似相同的输入为何不同,以及如何用已知测试值比较,避免混淆表示形式与安全性。
如何生成文本哈希
打开 SHA256 在线计算工具,粘贴文本、打开本地文本文件或让编辑器保持为空。“算法”默认 SHA-256,也可选择 SHA-384 和 SHA-512。需主动点击“生成哈希”;仅输入文本不会计算摘要,修改输入或算法会使旧结果失效。
查看结果时确认所选算法,再用“复制结果”或“下载”。空输入会产生真正的非空摘要。“自动换行”只改变显示。比较其他应用的值前,确认双方以相同算法计算相同字节序列,并使用可比较的输出表示。
- 有意识地保留结尾空格和行尾,不要只为匹配比较而删除。
- 先用
abc等固定示例确认算法,再排查实际数据。 - 单独保留原始数据与可信的预期摘要,不依赖截图或缩短的显示值。
SHA-256、SHA-384 和 SHA-512 输出长度
这三种算法属于 SHA-2 家族。无论输入为空、短词或更长的合规文本,摘要长度固定。一个十六进制字符表示四位,因此 256 位摘要有 64 个十六进制字符。开头为零的字节也会保留,不会缩短输出。工作区的字节标记计算的是 UTF-8 十六进制文本:64、96 或 128 字节,并非下表的原始摘要字节数。
选择接收格式或比较流程要求的算法。SHA-384 有自己的初始值,并不是普通 SHA-512 摘要的前缀。不能将 SHA-512 与 SHA-256 直接比较,并认为多出来的字符可有可无。更长输出本身不构成密码存储方案,也不证明应用安全。界面不提供 SHA-1、MD5、SHA-3、HMAC 或盐、密钥设置。
| 算法 | 摘要位数 | 摘要字节数 | 十六进制字符数 |
|---|---|---|---|
SHA-256 | 256 | 32 | 64 |
SHA-384 | 384 | 48 | 96 |
SHA-512 | 512 | 64 | 128 |
已知 SHA-256 示例:空文本与 abc
表中提供指定 UTF-8 输入的完整小写 SHA-256 摘要。空字符串示例的输入为零字节,不是空格或换行的摘要。abc 示例是三个 ASCII 字节,其十六进制为 61 62 63。它们是固定测试示例,不是对你输入的测量。
复制完整摘要,而不是缩短的预览。如果参考用大写十六进制,字母大小写只是表示形式不同,底层摘要字节相同;ToolMellow 输出小写。同一摘要字节的 Base64 表示是另一种编码,不是另一种哈希算法。本工具没有输出格式选择器。
| 准确的 UTF-8 输入 | 完整 SHA-256 十六进制摘要 |
|---|---|
| 空字符串 | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
abc | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
UTF-8 字节、空格与 Unicode 规范化
计算前,工具检查未配对的 Unicode 代理项,再将输入字符串转为 UTF-8。它不去除空格,不移除传入字符串中已有的开头 U+FEFF,也不进行 Unicode 规范化。结尾空格、大小写或字节表示变化可能改变摘要。哈希操作使用传给工作线程的字符串。
两个字符串外观相同,字节却可能不同。例如,预组成的 U+00E9 和序列 U+0065 U+0301 可显示相同的带重音字母,却有不同 UTF-8 编码。同样,LF 与 CRLF 是不同字节序列。浏览器编辑或导入会影响传入的字符串,不能只凭外观判断字节一致。
WHATWG Encoding:UTF-8 与文本解码ECMAScript:String isWellFormedWHATWG HTML:文本域值与行尾
打开文本文件不等于计算原始文件字节的哈希
文件控件使用 File.text() 解码 UTF-8 文本,去掉开头的 UTF-8 BOM 并替换畸形 UTF-8 序列。文件必须小于 4,000,000 字节,读取后的文本也须符合一百万 UTF-16 单元的输入上限。文件扩展名不能证明字符编码。
解码后的字符串再编码为 UTF-8 计算摘要,所以结果可能不同于直接对原始文件字节计算的校验和。二进制文档、图像、BOM、其他字符编码或替换字符都可能影响结果。需要逐字节验证文件时,应使用按预期算法读取并计算原始字节的方法;本工作区不是这种文件校验和工具。
相同或不同的哈希能说明什么
有效比较需确认双方的算法、字节序列和完整摘要表示一致。不匹配表示计算出的摘要不同,却不能指出原因是编辑、编码、算法错误、传输损坏或其他变化。已知测试向量能区分基本运行与真实输入的假设。
匹配的无密钥摘要支持与预期值的一致性,却不是签名、身份检查或无害性证明。密码学哈希输出空间有限,不能给所有可能消息提供数学上唯一的标识。应信任预期摘要的来源:若内容和参考值同时被替换,仅匹配不能证明真实性。
| 比较问题 | 下结论前的检查 |
|---|---|
| 算法不同 | 确认双方的 SHA-256、SHA-384 或 SHA-512 |
| 文字外观相同,摘要不同 | 检查 UTF-8 编码、规范化、空格和行尾 |
| 下载文件校验和不同 | 确认其他方法是否计算原始二进制字节 |
| 未知来源摘要匹配 | 建立可信参考;这不是身份认证 |
哈希不能解密,但可以测试猜测
哈希产生摘要,而不是带解密密钥的密文。ToolMellow 没有解密或恢复原文功能。加密、Base64 编码和哈希作用不同:Base64 可逆地表示字节,加密需要密码学方案和密钥。摘要不是能重建任意输入的压缩版本。
这不表示所有哈希输入都无法猜到。别人可以计算候选值并比较,原文短或可预测时尤其如此。公开哈希不是全面的保密保证。只增加哈希步骤并不能解决身份认证、密钥管理或安全存储。
为什么普通 SHA-256 不是密码存储系统
本工具计算无密钥 SHA-2 摘要,没有密码专用工作因子、盐管理或账户验证流程。选择 SHA-384 或 SHA-512 会改变摘要,却不增加这些功能。手动输入像盐的字符串也不等于实现完整密码存储方案。
密码存储需要专用结构和适当的应用控制。应遵循你所构建系统的当前密码存储指导。HMAC 和数字签名通过不同结构处理带密钥认证;ToolMellow 文本摘要既不生成也不验证它们。真实凭据不要出现在公开示例或截图中。
将结果用作输入会计算十六进制文本的哈希
生成摘要后,“将结果用作输入”把十六进制字符放进编辑器。再次计算的是这些文本的 UTF-8 字节。它不会自动把原始 32、48 或 64 个摘要字节交给下一次哈希,界面也没有原始字节输入模式。
如果协议要求对原始摘要字节再计算一次哈希,对可见十六进制结果做文本操作是另一种计算。每一步都要确认所需表示,而不是假设“哈希两次”总指一种操作。在这里重复无密钥摘要不会让它成为密码存储或带密钥认证。
WHATWG Encoding:UTF-8 与文本解码W3C Web Cryptography API:摘要与 SHA 算法
输入限制、Web Crypto 与 HTTPS
输入上限是 1,000,000 个 JavaScript UTF-16 代码单元,不是一百万 UTF-8 字节或可见字素。表情和组合字符说明这些数量为何不同。所选 SHA-2 输出的十六进制长度固定,因此有效结果符合输入上限,可以复用;可用浏览器内存与工作线程支持仍是限制。
浏览器必须在适当的安全上下文中提供 crypto.subtle,例如 HTTPS 或包括 localhost 的可信本地上下文。API 不可用时工具显示支持错误。HTTPS 本身不能保证每个浏览器或嵌入环境支持此 API。算法标准化也不证明浏览器、网站或实现通过 FIPS 验证或认证。
ECMAScript:String isWellFormedW3C Web Cryptography API:摘要与 SHA 算法W3C Secure Contexts:潜在可信来源
排查失败或异常的文本哈希
生成失败时阅读错误,确认支持的算法及安全上下文中的 Web Crypto 可用性,并检查输入中的未配对代理项。导入上限错误不同于哈希错误。弄清预期结果对应哪个字节表示后再改文本。
比较失败时先用已知 abc 向量,再逐项比较真实输入条件。本工具不诊断损坏,不提供验证证书,也不从 URL 请求参考校验和。无法访问剪贴板时,可选择摘要手动复制。
| 现象 | 有意义的下一步检查 |
|---|---|
| Web Crypto 不可用 | 使用适当安全上下文和兼容浏览器 |
| 未配对代理项错误 | 计算前替换畸形 Unicode 输入 |
| 文件或输入上限提示 | 分开理解文件字节与 UTF-16 单元限制 |
| 导入文件后哈希异常 | 检查 BOM 去除、UTF-8 替换与原始字节 |
| 复用结果后哈希异常 | 输入是十六进制文本,不是原始摘要字节 |
W3C Web Cryptography API:摘要与 SHA 算法WHATWG Encoding:UTF-8 与文本解码
文本下载、清空与本地隐私
“下载”把十六进制结果作为 UTF-8 文本保存为 toolmellow-result.txt,不是原始摘要字节、二进制校验和清单或报告。“清空”移除输入、输出、错误、查找替换内容和编辑器历史,同时保留“算法”和“自动换行”。刷新或关闭工作区丢弃内存中的工作状态;下载文件仍在设备上。
应用不会把文本、选中文件内容或结果上传给哈希服务器。加载网站仍向主机发送常规元数据,公开站点也用 Google Analytics 统计页面访问,包括 Cookie 和浏览器、设备信息。本地哈希不表示匿名、零网络流量或基础设施零日志。“清空”不保证彻底移除浏览器或操作系统内存中的可恢复痕迹。
嵌入哈希工具并保留反向链接
选择页面语言,打开工作区下方的集成部分。复制或下载 HTML 代码到允许外部 iframe 和脚本的网站区域。代码包含 ToolMellow 工作区 iframe、尺寸脚本和对应语言 ToolMellow 页面的可见反向链接。请保留署名链接。
检查窄屏预览、嵌入安全上下文和剪贴板权限。嵌入版保留相同算法、文本范围和输入限制,不成为远程哈希 API、文件校验和服务或密码验证系统。署名链接用 nofollow 和 noopener,不能保证提高排名。
常见问题
如何生成 SHA-256 哈希?
粘贴格式完整的文本或保持为空,在“算法”选择 SHA-256 并点击“生成哈希”。ToolMellow 将传入字符串编码为 UTF-8,在本地显示完整小写十六进制摘要。
为什么 SHA-256 结果有 64 个字符?
SHA-256 摘要为 256 位。每个十六进制字符表示四位,所以是 64 个字符。SHA-384 有 96 个,SHA-512 有 128 个。输入长度不改变所选摘要长度。
空字符串的 SHA-256 是什么?
零 UTF-8 输入字节的结果是 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855。空格或换行不是空输入,可能产生不同摘要。
为什么文本哈希发生变化?
算法或传入字节可能不同。空格、大小写、LF 与 CRLF、BOM、Unicode 规范化或其他字符编码都可能影响结果。看似相同不证明字节相同。
哈希能解密吗?
摘要没有解密密钥,本工具不能恢复任意原文。但别人可以计算猜测候选值并比较。短且可预测的输入哈希不是保密保证。
能在这里计算文件校验和吗?
导入以 UTF-8 文本读取文件,去掉开头 BOM 并替换畸形 UTF-8,再编码计算哈希。它不是任意文件内容的逐字节精确校验和。需要此功能时使用合适的原始字节哈希方法。
哈希匹配能证明真实性或安全性吗?
不能。无密钥摘要匹配支持与可信参考的一致性,不证明身份、授权或无害性。若内容与参考同时被替换,只比较它们无法认证发布者。
本工具的 SHA-256 适合密码存储吗?
这种普通无密钥摘要没有密码专用工作因子或盐管理。选择 SHA-384/512 或重复计算文本哈希不会增加完整密码存储方案。应遵循实际应用的当前指导。
将哈希用作输入会怎样?
下一次计算把十六进制字符当作 UTF-8 文本,不会自动计算原始摘要字节。这两种表示对应不同计算;界面没有原始字节模式。
支持 MD5、SHA-1、SHA-3 或 HMAC 吗?
不支持。只有 SHA-256、SHA-384 和 SHA-512 文本摘要。没有密钥、盐或输出格式选择器,也不生成或验证 HMAC 和数字签名。
为什么哈希计算需要 HTTPS 或 localhost?
Web Crypto 的 crypto.subtle 需要适当安全上下文和浏览器支持。不可用时生成会显示支持错误。仅 HTTPS 不能保证兼容性或 FIPS 认证。
能在网页嵌入哈希工具吗?
使用工作区下方的本地化 HTML 代码,保留可见的 ToolMellow 反向链接,检查 iframe、脚本、安全上下文和剪贴板支持。嵌入版保留相同文本算法与限制,不是远程哈希 API。