原创不易,转载请注明出处。
目录
1. 算法简介
2. 符号
3. 加密算法流程
3.1 概述
3.2 填充
3.3 加密处理
附录A 运算示例
SHA英文全称Secure Hash Algorithm,即安全散列算法。散列算法又称杂凑算法或哈希算法,能将一定长度的消息计算出固定长度的字符串(又称消息摘要)。SHA包含5个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,后四者并称为SHA-2。
SHA-384最大计算明文长度为2^128bit,属于分组算法,分组长度为1024bit,产生的信息摘要长度为384bit。SHA-384算法属于密码杂凑算法,原则上不能通过密文推出明文。
本文将通过实例,详细介绍SHA-256加密算法的加密流程。
下列符号适用于本文本。
h0~h7:8个64bit双字,初始哈希值,也存放每组计算的当前哈希值
abcdefgh:8个64bit双字,存放中间变量
m:消息
m':填充后的消息
mod:模运算
s0,s1:字节扩展时中间变量
S0,S1,ch,maj,temp1,temp2:循环迭代时中间变量
w[i]:第i个扩展双字
∧:64bit与运算
∨:64bit或运算
⊕:异或运算
>>>k:循环右移k比特运算
>>k:右移k比特运算
←:左向赋值运算符
~:64bit双字按位取反
对长度为l (l<2^128bit )比特的消息 ,SHA-384杂凑算法经过填充和迭代压缩,生成杂凑值,杂凑值长度为384比特。
假设消息m 的长度为 l比特。首先将比特“1”添加到消息的末尾,再添加 k个“0”,k 是满足l+1+k=896mod1024 的最小的非负整数。然后再添加一个128位比特串,该比特串是长度l 的二进制表示。填充后的消息 m'的比特长度为1024的倍数。
例如:对消息01100001 01100010 01100011,其长度 =24,经填充得到比特串:
事实上,在编写程序时,应该先进行分组,对满足1024bit的分组先进行计算。当分到最后一组不足1024bit时,再进行填充。
将填充后的消息m' 按1024比特进行分组:m'=B0B1……Bn-1,其中n=(l+k+129)/1024 。
3.3.1 常量及初始值
初始哈希值:
h0=0xcbbb9d5dc1059ed8,
h1=0x629a292a367cd507,
h2=0x9159015a3070dd17,
h3=0x152fecd8f70e5939,
h4=0x67332667ffc00b31,
h5=0x8eb44a8768581511,
h6=0xdb0c2e0d64f98fa7,
h7=0x47b5481dbefa4fa4
初始常量矩阵(十六进制):
k[0..79]=
0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, 0x3956c25bf348b538,
0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, 0xd807aa98a3030242, 0x12835b0145706fbe,
0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235,
0xc19bf174cf692694, 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65,
0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, 0x983e5152ee66dfab,
0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4, 0xc6e00bf33da88fc2, 0xd5a79147930aa725,
0x06ca6351e003826f, 0x142929670a0e6e70, 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed,
0x53380d139d95b3df, 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b,
0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30, 0xd192e819d6ef5218,
0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8, 0x19a4c116b8d2d0c8, 0x1e376c085141ab53,
0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373,
0x682e6ff3d6b2b8a3, 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec,
0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b, 0xca273eceea26619c,
0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, 0x06f067aa72176fba, 0x0a637dc5a2c898a6,
0x113f9804bef90dae, 0x1b710b35131c471b, 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc,
0x431d67c49c100d4c, 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817
3.3.2 加密流程
每组数据按照如下流程进行加密操作:
1)分组数据按照64bit双字存放在w[0]~w[15]中,然后按照如下规则扩展成80个双字。注意 s0, s1 最后是右移, 不是循环右移。
FOR i from 16 to 79
s0= (w[i-15] ) >>> 1)⊕(w[i-15] >>> 8)⊕(w[i-15] >> 7)
s1= (w[i-2] >>> 19)⊕(w[i-2] >>> 61)⊕(w[i-2] >> 6)
w[i]= w[i-16] + s0 + w[i-7] + s1
ENDFOR
2)赋值初始哈希值
a= h0
b= h1
c= h2
d= h3
e= h4
f= h5
g= h6
h= h7
3)迭代计算80次
FOR i from 0 to 79
S1= (e >>> 14) ⊕ (e >>> 18) ⊕ (e >>> 41)
ch= (e∧ f) ⊕ ((~ e) ∧ g)
temp1= h + S1 + ch + k[i] + w[i]
S0= (a >>> 28) ⊕ (a >>> 34) ⊕ (a >>> 39)
maj= (a∧b) ⊕ (a∧c)⊕(b∧c)
temp2= S0 + maj
h= g
g= f
f= e
e= d + temp1
d= c
c= b
b= a
a= temp1 + temp2
ENDFOR
4)获取当前哈希值
h0= h0 + a
h1= h1 + b
h2= h2 + c
h3= h3 + d
h4= h4 + e
h5= h5 + f
h6= h6 + g
h7= h7 + h
注意前一组得到的哈希值h0~h7作为下一分组的初始值,最终得到的h0~h5就是384bit杂凑值。
原始输入消息:
abc
填充后消息:
0x61 0x62 0x63 0x80 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x18
80个扩展双字(十六进制)
w[0]~w[3]: |
6162638000000000 |
0000000000000000 |
0000000000000000 |
0000000000000000 |
w[4]~w[7]: |
0000000000000000 |
0000000000000000 |
0000000000000000 |
0000000000000000 |
w[8]~w[11]: |
0000000000000000 |
0000000000000000 |
0000000000000000 |
0000000000000000 |
w[12]~w[15]: |
0000000000000000 |
0000000000000000 |
0000000000000000 |
0000000000000018 |
w[16]~w[19]: |
6162638000000000 |
00030000000000c0 |
0a9699a24c700003 |
00000c0060000603 |
w[20]~w[23]: |
549ef62639858996 |
00c0003300003c00 |
1497007a8a0e9dbc |
62e56500cc0780f0 |
w[24]~w[27]: |
7760dd475a538797 |
f1554b711c1c0003 |
ca2993a4345d9ff2 |
5e0e66b5c783dd32 |
w[28]~w[31]: |
e25a625d00494b62 |
9f44486fb1e4fbd2 |
b31b8c2b06085f2f |
0e987660934142f6 |
w[32]~w[35]: |
a4af2cfd09fbb924 |
ad289e2e0bd53186 |
3c74563aa2f9673e |
6ccdcd14cc14b53f |
w[36]~w[39]: |
c3f925b337f22bde |
5bcc77a75ad95b54 |
3ec2257adca09a52 |
28246960001fc5eb |
w[40]~w[43]: |
04e33a75ce2be88a |
7d5314b3c359e0e7 |
aef7a285ff251266 |
0b8472581deea04f |
w[44]~w[47]: |
b174e26eddc7b033 |
5d63bae58ddd88de |
4c044007b744ccbb |
e6a9aa4d74dc7d43 |
w[48]~w[51]: |
ebeaf1237248019c |
361e80b2d00f3193 |
2e9839125df3b175 |
3319629293ad5363 |
w[52]~w[55]: |
9cbc5d89ac1b89d5 |
275e23ffeeca50b7 |
3b80d680bf69ef58 |
0d0696933945a125 |
w[56]~w[59]: |
7533eabcb786ff00 |
b89826cee6fbf0e5 |
249b4fbcad623e9f |
4aea9df2b02d6f1e |
w[60]~w[63]: |
2cc57475a55e8d8f |
b2574ae938d8be89 |
c1b35a57b16d6aea |
cc4918b5949206bb |
w[64]~w[67]: |
5099c3add79f90ec |
5ea81d78e7660bf1 |
ebee6267405ac2a9 |
b01f21926108a4ab |
w[68]~w[71]: |
786433dd2fe65556 |
c54a6eaa24a0552c |
b3c8f1530bdbaa9e |
bb8abfe56f469338 |
w[72]~w[75]: |
f63d4265cc1c5a78 |
be8355ea73129afb |
49e2db8ebdcfbeb5 |
82269d4a883a3d99 |
w[76]~w[79]: |
fdf53df3011f362b |
464af5671d71c12e |
e449b68198ec611c |
92aeeed1a7bcf7d2 |
64轮迭代(十六进制表示):
a | b | c | d | e | f | g | h | ||
1 | 470994ad30873f88 | cbbb9d5dc1059ed8 | 629a292a367cd507 | 9159015a3070dd17 | bd03f724be6075f9 | 67332667ffc00b31 | 8eb44a8768581511 | db0c2e0d64f98fa7 | |
2 | 2e91230306a12ae0 | 470994ad30873f88 | cbbb9d5dc1059ed8 | 629a292a367cd507 | 5e1b4e1695372b9e | bd03f724be6075f9 | 67332667ffc00b31 | 8eb44a8768581511 | |
3 | eebe5d379be707ad | 2e91230306a12ae0 | 470994ad30873f88 | cbbb9d5dc1059ed8 | 54074a65aef34336 | 5e1b4e1695372b9e | bd03f724be6075f9 | 67332667ffc00b31 | |
4 | e308483153e15ad6 | eebe5d379be707ad | 2e91230306a12ae0 | 470994ad30873f88 | 086c5b2d36a89178 | 54074a65aef34336 | 5e1b4e1695372b9e | bd03f724be6075f9 | |
5 | 3a7a023c593d8479 | e308483153e15ad6 | eebe5d379be707ad | 2e91230306a12ae0 | 8aa1144850633794 | 086c5b2d36a89178 | 54074a65aef34336 | 5e1b4e1695372b9e | |
6 | 333199a85f92b052 | 3a7a023c593d8479 | e308483153e15ad6 | eebe5d379be707ad | 7a6316f0ef047ce7 | 8aa1144850633794 | 086c5b2d36a89178 | 54074a65aef34336 | |
7 | 76f0741213dd2ef6 | 333199a85f92b052 | 3a7a023c593d8479 | e308483153e15ad6 | 74063cba385f0675 | 7a6316f0ef047ce7 | 8aa1144850633794 | 086c5b2d36a89178 | |
8 | 02f2a04d3aab1629 | 76f0741213dd2ef6 | 333199a85f92b052 | 3a7a023c593d8479 | 1688b9bf14980fc0 | 74063cba385f0675 | 7a6316f0ef047ce7 | 8aa1144850633794 | |
9 | 73e5b2a1704a0349 | 02f2a04d3aab1629 | 76f0741213dd2ef6 | 333199a85f92b052 | fd00139f705907d0 | 1688b9bf14980fc0 | 74063cba385f0675 | 7a6316f0ef047ce7 | |
10 | bf3f67ba12882648 | 73e5b2a1704a0349 | 02f2a04d3aab1629 | 76f0741213dd2ef6 | 652e311d4f0a4257 | fd00139f705907d0 | 1688b9bf14980fc0 | 74063cba385f0675 | |
11 | 33254508bb2ea48d | bf3f67ba12882648 | 73e5b2a1704a0349 | 02f2a04d3aab1629 | 9e18991c4f39f0ba | 652e311d4f0a4257 | fd00139f705907d0 | 1688b9bf14980fc0 | |
12 | c1fdb2a0205ea0e5 | 33254508bb2ea48d | bf3f67ba12882648 | 73e5b2a1704a0349 | 04732e8bc4044582 | 9e18991c4f39f0ba | 652e311d4f0a4257 | fd00139f705907d0 | |
13 | 185f9ff038a50f39 | c1fdb2a0205ea0e5 | 33254508bb2ea48d | bf3f67ba12882648 | 8b4acfc4d2b8afe6 | 04732e8bc4044582 | 9e18991c4f39f0ba | 652e311d4f0a4257 | |
14 | e5f06744c0d7563a | 185f9ff038a50f39 | c1fdb2a0205ea0e5 | 33254508bb2ea48d | 2fa93d1ce9523015 | 8b4acfc4d2b8afe6 | 04732e8bc4044582 | 9e18991c4f39f0ba | |
15 | 7e32dc0e9f414783 | e5f06744c0d7563a | 185f9ff038a50f39 | c1fdb2a0205ea0e5 | 3a9950aaa5e75884 | 2fa93d1ce9523015 | 8b4acfc4d2b8afe6 | 04732e8bc4044582 | |
16 | 1eab6159ae87ef6d | 7e32dc0e9f414783 | e5f06744c0d7563a | 185f9ff038a50f39 | 153b895cfbc436c5 | 3a9950aaa5e75884 | 2fa93d1ce9523015 | 8b4acfc4d2b8afe6 | |
17 | 33ef2cebbf1739aa | 1eab6159ae87ef6d | 7e32dc0e9f414783 | e5f06744c0d7563a | 9d1a64baf1d366aa | 153b895cfbc436c5 | 3a9950aaa5e75884 | 2fa93d1ce9523015 | |
18 | 7df1b65f1b87d6ca | 33ef2cebbf1739aa | 1eab6159ae87ef6d | 7e32dc0e9f414783 | 5b6e369d36e8e181 | 9d1a64baf1d366aa | 153b895cfbc436c5 | 3a9950aaa5e75884 | |
19 | 63a24014a34bb0f6 | 7df1b65f1b87d6ca | 33ef2cebbf1739aa | 1eab6159ae87ef6d | e13e610eae680d85 | 5b6e369d36e8e181 | 9d1a64baf1d366aa | 153b895cfbc436c5 | |
20 | f1aabd313309509b | 63a24014a34bb0f6 | 7df1b65f1b87d6ca | 33ef2cebbf1739aa | 674385f0d87db94f | e13e610eae680d85 | 5b6e369d36e8e181 | 9d1a64baf1d366aa | |
21 | 9ba737ae88a72c64 | f1aabd313309509b | 63a24014a34bb0f6 | 7df1b65f1b87d6ca | 3fc2614c43906c0f | 674385f0d87db94f | e13e610eae680d85 | 5b6e369d36e8e181 | |
22 | 042c2dc9a5bf558a | 9ba737ae88a72c64 | f1aabd313309509b | 63a24014a34bb0f6 | 19316bebc88e01f2 | 3fc2614c43906c0f | 674385f0d87db94f | e13e610eae680d85 | |
23 | 7799c75acc748c0f | 042c2dc9a5bf558a | 9ba737ae88a72c64 | f1aabd313309509b | a7bbd65bf64f58c8 | 19316bebc88e01f2 | 3fc2614c43906c0f | 674385f0d87db94f | |
24 | ccf99a80f92bf002 | 7799c75acc748c0f | 042c2dc9a5bf558a | 9ba737ae88a72c64 | e52a24fae4e8fc9b | a7bbd65bf64f58c8 | 19316bebc88e01f2 | 3fc2614c43906c0f | |
25 | ae993474363efe68 | ccf99a80f92bf002 | 7799c75acc748c0f | 042c2dc9a5bf558a | 587f308d58681928 | e52a24fae4e8fc9b | a7bbd65bf64f58c8 | 19316bebc88e01f2 | |
26 | 335063d1a2aec92f | ae993474363efe68 | ccf99a80f92bf002 | 7799c75acc748c0f | c2d6d65e38c6ea79 | 587f308d58681928 | e52a24fae4e8fc9b | a7bbd65bf64f58c8 | |
27 | 53a78b0cca01ba37 | 335063d1a2aec92f | ae993474363efe68 | ccf99a80f92bf002 | 3b65a26c3c92c8f3 | c2d6d65e38c6ea79 | 587f308d58681928 | e52a24fae4e8fc9b | |
28 | ab7ffa529f622930 | 53a78b0cca01ba37 | 335063d1a2aec92f | ae993474363efe68 | b9d8a2f2762901ea | 3b65a26c3c92c8f3 | c2d6d65e38c6ea79 | 587f308d58681928 | |
29 | e428bb43afe3d63e | ab7ffa529f622930 | 53a78b0cca01ba37 | 335063d1a2aec92f | 6a8527525f898726 | b9d8a2f2762901ea | 3b65a26c3c92c8f3 | c2d6d65e38c6ea79 | |
30 | bbed541a5128088c | e428bb43afe3d63e | ab7ffa529f622930 | 53a78b0cca01ba37 | 7973aadbde294be9 | 6a8527525f898726 | b9d8a2f2762901ea | 3b65a26c3c92c8f3 | |
31 | 4c5c38df7ec8baf4 | bbed541a5128088c | e428bb43afe3d63e | ab7ffa529f622930 | 422ceea0200e9ee4 | 7973aadbde294be9 | 6a8527525f898726 | b9d8a2f2762901ea | |
32 | 4ba456ec244033ed | 4c5c38df7ec8baf4 | bbed541a5128088c | e428bb43afe3d63e | 7cf40857056d86b0 | 422ceea0200e9ee4 | 7973aadbde294be9 | 6a8527525f898726 | |
33 | aa4a6ab2ac5f5dd8 | 4ba456ec244033ed | 4c5c38df7ec8baf4 | bbed541a5128088c | ad2b1ecfb5bfc556 | 7cf40857056d86b0 | 422ceea0200e9ee4 | 7973aadbde294be9 | |
34 | 9cb941f2ced774b3 | aa4a6ab2ac5f5dd8 | 4ba456ec244033ed | 4c5c38df7ec8baf4 | 029f66c7b4569bf0 | ad2b1ecfb5bfc556 | 7cf40857056d86b0 | 422ceea0200e9ee4 | |
35 | 39265f358594de27 | 9cb941f2ced774b3 | aa4a6ab2ac5f5dd8 | 4ba456ec244033ed | 3f7b1c260c82e54f | 029f66c7b4569bf0 | ad2b1ecfb5bfc556 | 7cf40857056d86b0 | |
36 | 09cca487d39b02a1 | 39265f358594de27 | 9cb941f2ced774b3 | aa4a6ab2ac5f5dd8 | 4a22b37b58a5b1b0 | 3f7b1c260c82e54f | 029f66c7b4569bf0 | ad2b1ecfb5bfc556 | |
37 | d48d97ce438cf4f0 | 09cca487d39b02a1 | 39265f358594de27 | 9cb941f2ced774b3 | a239e00b8baa0410 | 4a22b37b58a5b1b0 | 3f7b1c260c82e54f | 029f66c7b4569bf0 | |
38 | d6f41e25a8b634d6 | d48d97ce438cf4f0 | 09cca487d39b02a1 | 39265f358594de27 | 25755cb8179dd0b0 | a239e00b8baa0410 | 4a22b37b58a5b1b0 | 3f7b1c260c82e54f | |
39 | 54078334358573b4 | d6f41e25a8b634d6 | d48d97ce438cf4f0 | 09cca487d39b02a1 | 0e419fb0802b0efc | 25755cb8179dd0b0 | a239e00b8baa0410 | 4a22b37b58a5b1b0 | |
40 | db24f9a03f4fff6b | 54078334358573b4 | d6f41e25a8b634d6 | d48d97ce438cf4f0 | d30e99b4b394b090 | 0e419fb0802b0efc | 25755cb8179dd0b0 | a239e00b8baa0410 | |
41 | 3604c53a845efc37 | db24f9a03f4fff6b | 54078334358573b4 | d6f41e25a8b634d6 | 791b2b4af7338b99 | d30e99b4b394b090 | 0e419fb0802b0efc | 25755cb8179dd0b0 | |
42 | f41b1c0eee89bdc6 | 3604c53a845efc37 | db24f9a03f4fff6b | 54078334358573b4 | e319b77d9e4e87f9 | 791b2b4af7338b99 | d30e99b4b394b090 | 0e419fb0802b0efc | |
43 | 36644ae374632e3a | f41b1c0eee89bdc6 | 3604c53a845efc37 | db24f9a03f4fff6b | 458250878a3972b2 | e319b77d9e4e87f9 | 791b2b4af7338b99 | d30e99b4b394b090 | |
44 | 88806f6ae9fcd65b | 36644ae374632e3a | f41b1c0eee89bdc6 | 3604c53a845efc37 | cfde2e6ea54fa576 | 458250878a3972b2 | e319b77d9e4e87f9 | 791b2b4af7338b99 | |
45 | 51dcaa36995c301d | 88806f6ae9fcd65b | 36644ae374632e3a | f41b1c0eee89bdc6 | e37f778353998050 | cfde2e6ea54fa576 | 458250878a3972b2 | e319b77d9e4e87f9 | |
46 | ef5e3885a2f238df | 51dcaa36995c301d | 88806f6ae9fcd65b | 36644ae374632e3a | 740e347f24e18fda | e37f778353998050 | cfde2e6ea54fa576 | 458250878a3972b2 | |
47 | eb3753f4283f4818 | ef5e3885a2f238df | 51dcaa36995c301d | 88806f6ae9fcd65b | 0ae48cf840bb8be9 | 740e347f24e18fda | e37f778353998050 | cfde2e6ea54fa576 | |
48 | a6998d63a5d09e04 | eb3753f4283f4818 | ef5e3885a2f238df | 51dcaa36995c301d | e21095012ee0b72a | 0ae48cf840bb8be9 | 740e347f24e18fda | e37f778353998050 | |
49 | d3698fb64df175b0 | a6998d63a5d09e04 | eb3753f4283f4818 | ef5e3885a2f238df | c2f0b90ffce80739 | e21095012ee0b72a | 0ae48cf840bb8be9 | 740e347f24e18fda | |
50 | 317a3b295b991914 | d3698fb64df175b0 | a6998d63a5d09e04 | eb3753f4283f4818 | 1cadff2e6cb5aa4d | c2f0b90ffce80739 | e21095012ee0b72a | 0ae48cf840bb8be9 | |
51 | 0941da08148ba463 | 317a3b295b991914 | d3698fb64df175b0 | a6998d63a5d09e04 | 833eb9a4bb5a073e | 1cadff2e6cb5aa4d | c2f0b90ffce80739 | e21095012ee0b72a | |
52 | 494ac238d68c3d0b | 0941da08148ba463 | 317a3b295b991914 | d3698fb64df175b0 | 80c8fc138e645028 | 833eb9a4bb5a073e | 1cadff2e6cb5aa4d | c2f0b90ffce80739 | |
53 | c87e9168db9e97de | 494ac238d68c3d0b | 0941da08148ba463 | 317a3b295b991914 | 65cf7f6a829aca04 | 80c8fc138e645028 | 833eb9a4bb5a073e | 1cadff2e6cb5aa4d | |
54 | edb4448879391dbb | c87e9168db9e97de | 494ac238d68c3d0b | 0941da08148ba463 | 7729c85475dd318f | 65cf7f6a829aca04 | 80c8fc138e645028 | 833eb9a4bb5a073e | |
55 | 073775c2456dc7db | edb4448879391dbb | c87e9168db9e97de | 494ac238d68c3d0b | a9cca0b6266b1d77 | 7729c85475dd318f | 65cf7f6a829aca04 | 80c8fc138e645028 | |
56 | 54de8857b24afaf7 | 073775c2456dc7db | edb4448879391dbb | c87e9168db9e97de | 8de51cff2ae4b068 | a9cca0b6266b1d77 | 7729c85475dd318f | 65cf7f6a829aca04 | |
57 | 8a9cdd80f7f09c05 | 54de8857b24afaf7 | 073775c2456dc7db | edb4448879391dbb | a60ba5e9ebaeb96a | 8de51cff2ae4b068 | a9cca0b6266b1d77 | 7729c85475dd318f | |
58 | 3eeb22a7524d8d7f | 8a9cdd80f7f09c05 | 54de8857b24afaf7 | 073775c2456dc7db | e2e6830b139df58f | a60ba5e9ebaeb96a | 8de51cff2ae4b068 | a9cca0b6266b1d77 | |
59 | 0ed77c9cde8883d3 | 3eeb22a7524d8d7f | 8a9cdd80f7f09c05 | 54de8857b24afaf7 | 38413a2052387a9e | e2e6830b139df58f | a60ba5e9ebaeb96a | 8de51cff2ae4b068 | |
60 | e64e4135f9d30dbc | 0ed77c9cde8883d3 | 3eeb22a7524d8d7f | 8a9cdd80f7f09c05 | 45b640454c75c349 | 38413a2052387a9e | e2e6830b139df58f | a60ba5e9ebaeb96a | |
61 | 1ca93a293d544328 | e64e4135f9d30dbc | 0ed77c9cde8883d3 | 3eeb22a7524d8d7f | efbef83a35c0319e | 45b640454c75c349 | 38413a2052387a9e | e2e6830b139df58f | |
62 | 3dc764f89e54043a | 1ca93a293d544328 | e64e4135f9d30dbc | 0ed77c9cde8883d3 | a57784945550cf94 | efbef83a35c0319e | 45b640454c75c349 | 38413a2052387a9e | |
63 | 56fb5883f1c87a05 | 3dc764f89e54043a | 1ca93a293d544328 | e64e4135f9d30dbc | f5198a41eb80e022 | a57784945550cf94 | efbef83a35c0319e | 45b640454c75c349 | |
64 | 24a1124262a331c7 | 56fb5883f1c87a05 | 3dc764f89e54043a | 1ca93a293d544328 | 06edacae6e7b54ad | f5198a41eb80e022 | a57784945550cf94 | efbef83a35c0319e | |
65 | eb85d19201c89694 | 24a1124262a331c7 | 56fb5883f1c87a05 | 3dc764f89e54043a | 9ced24983eec8723 | 06edacae6e7b54ad | f5198a41eb80e022 | a57784945550cf94 | |
66 | cc981ab3a59c1db4 | eb85d19201c89694 | 24a1124262a331c7 | 56fb5883f1c87a05 | eac5516336bc8882 | 9ced24983eec8723 | 06edacae6e7b54ad | f5198a41eb80e022 | |
67 | ceef5d997e148b44 | cc981ab3a59c1db4 | eb85d19201c89694 | 24a1124262a331c7 | 617bbf70bb165212 | eac5516336bc8882 | 9ced24983eec8723 | 06edacae6e7b54ad | |
68 | 689edf608a8e3f14 | ceef5d997e148b44 | cc981ab3a59c1db4 | eb85d19201c89694 | 3280d88472c100fd | 617bbf70bb165212 | eac5516336bc8882 | 9ced24983eec8723 | |
69 | 1e6e0255ab88079f | 689edf608a8e3f14 | ceef5d997e148b44 | cc981ab3a59c1db4 | f2001138439902b1 | 3280d88472c100fd | 617bbf70bb165212 | eac5516336bc8882 | |
70 | 8c5d3b7fdad66e70 | 1e6e0255ab88079f | 689edf608a8e3f14 | ceef5d997e148b44 | 90d18ec8b69f0345 | f2001138439902b1 | 3280d88472c100fd | 617bbf70bb165212 | |
71 | 32e5ed8655871e9b | 8c5d3b7fdad66e70 | 1e6e0255ab88079f | 689edf608a8e3f14 | 51105f6241313777 | 90d18ec8b69f0345 | f2001138439902b1 | 3280d88472c100fd | |
72 | bcd5061679be7336 | 32e5ed8655871e9b | 8c5d3b7fdad66e70 | 1e6e0255ab88079f | 454b99f654443ad0 | 51105f6241313777 | 90d18ec8b69f0345 | f2001138439902b1 | |
73 | e7d913b6678e78ef | bcd5061679be7336 | 32e5ed8655871e9b | 8c5d3b7fdad66e70 | 1ff613b5aa63776e | 454b99f654443ad0 | 51105f6241313777 | 90d18ec8b69f0345 | |
74 | e6b8cb8dfa3475ab | e7d913b6678e78ef | bcd5061679be7336 | 32e5ed8655871e9b | 2e75f34303d39bb0 | 1ff613b5aa63776e | 454b99f654443ad0 | 51105f6241313777 | |
75 | fdd4a30e168c4ae5 | e6b8cb8dfa3475ab | e7d913b6678e78ef | bcd5061679be7336 | 83a35dbe2a64fc26 | 2e75f34303d39bb0 | 1ff613b5aa63776e | 454b99f654443ad0 | |
76 | 12aeb6268dfa3e14 | fdd4a30e168c4ae5 | e6b8cb8dfa3475ab | e7d913b6678e78ef | f660943b276786f7 | 83a35dbe2a64fc26 | 2e75f34303d39bb0 | 1ff613b5aa63776e | |
77 | 055b73814cf102b4 | 12aeb6268dfa3e14 | fdd4a30e168c4ae5 | e6b8cb8dfa3475ab | c4b149710f5d6a71 | f660943b276786f7 | 83a35dbe2a64fc26 | 2e75f34303d39bb0 | |
78 | 95d33150de6df44c | 055b73814cf102b4 | 12aeb6268dfa3e14 | fdd4a30e168c4ae5 | c7f7bff08ebf0d30 | c4b149710f5d6a71 | f660943b276786f7 | 83a35dbe2a64fc26 | |
79 | 5306143f64497b00 | 95d33150de6df44c | 055b73814cf102b4 | 12aeb6268dfa3e14 | ca06a219cc701096 | c7f7bff08ebf0d30 | c4b149710f5d6a71 | f660943b276786f7 | |
80 | ff44d7e1849dbfb3 | 5306143f64497b00 | 95d33150de6df44c | 055b73814cf102b4 | 1952e0c3a227c0f2 | ca06a219cc701096 | c7f7bff08ebf0d30 | c4b149710f5d6a71 |
杂凑值h0~h5
h0:0xcb00753f45a35e8b
h1:0xb5a03d699ac65007
h2:0x272c32ab0eded163
h3:0x1a8b605a43ff5bed
h4:0x8086072ba1e7cc23
h5:0x58baeca134c825a7
参考文献:
[1]https://en.wikipedia.org/wiki/Secure_Hash_Algorithms