SHA256原理图解

32 0

SHA256 是一种哈希(散列)算法,把任意长度的数据计算成固定 256 位(32 字节)的摘要,通常写成 64 位十六进制字符串。下面重点说明用步骤把过程说清楚。

SHA256原理图解

SHA256 先对输入做填充:在末尾补 1 个“1”位和若干“0”位,再附上原始长度,使总长度是 512 位的整数倍;然后把数据分成 512 位的块,依次送入压缩函数,与内部状态(256 位)进行多轮位运算和模加,最后的状态就是摘要。SHA-256 每块 64 轮。

示例

输入:user@example.com

计算结果:b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514

说明:对 UTF-8 字节计算 SHA256。

Java 示例

下面是 Java 中处理SHA256的常用写法:

MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] d = md.digest("abc".getBytes(StandardCharsets.UTF_8));
String hex = String.format("%064x", new BigInteger(1, d));
// Java 17+: HexFormat.of().formatHex(d)

运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。

乱码排查

SHA256 结果本身不会乱码,它只包含 0–9 和 a–f;如果结果“对不上”,多半是计算前的文本字符集不同,例如 Windows 程序按 GBK 计算,网页按 UTF-8 计算。

本站的SHA哈希计算器工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。

常见问题

【空字符串的 SHA256 是多少?】e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855。

【SHA256 能解密吗?】不能。SHA256 是单向哈希,没有密钥也没有逆运算;所谓解密是查已知明文的对照表,只对简单字符串有效。

【SHA256 是多少位?】256 位,即 32 字节,写成十六进制是 64 个字符。

文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: SHA256 数码开发

抱歉,评论功能暂时关闭!