SHA-256 计算过程
深入了解 SHA-256 哈希算法的完整计算过程,包括消息填充、消息调度、64轮压缩函数和最终哈希生成。
SHA-256 算法结构
输入消息
Message
▼
1. 消息填充
M + 0x80 + 0...0 + len
512 bits block
▼
2. 消息调度
W[0-15]
直接提取
W[16-63]
σ₀ + σ₁
W[0..63]
▼
3. 压缩函数 (64轮)
H₀...H₇
→
a
b
c
d
e
f
g
h
单轮运算
Σ₀(a)
↓
Maj(a,b,c)
↓
+
temp2
a→b→c→d
e→f→g→h
Σ₁(e)
↓
Ch(e,f,g)
↓
+ h + K + W
temp1
a ← temp1 + temp2
e ← d + temp1
× 64 rounds
▼
4. 最终哈希
H₀+=a, H₁+=b, ... H₇+=h
▼
256-bit Hash
H₀
||
H₁
||
...
||
H₇
Σ
位旋转异或
Ch
选择函数 (e∧f)⊕(¬e∧g)
Maj
多数函数 (a∧b)⊕(a∧c)⊕(b∧c)
K
轮常量 K[0..63]