SHA-384摘要算法(帶示例)

原創不易,轉載請註明出處。

目錄

1.      算法簡介

2.      符號

3.      加密算法流程

3.1 概述

3.2 填充

3.3 加密處理

附錄A 運算示例

1.算法簡介

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加密算法的加密流程。

2.符號

下列符號適用於本文本。

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雙字按位取反

3.加密算法流程

3.1 概述

對長度爲l (l<2^128bit )比特的消息 ,SHA-384雜湊算法經過填充和迭代壓縮,生成雜湊值,雜湊值長度爲384比特。

3.2 填充

假設消息m 的長度爲 l比特。首先將比特“1”添加到消息的末尾,再添加 k個“0”,k 是滿足l+1+k=896mod1024 的最小的非負整數。然後再添加一個128位比特串,該比特串是長度l 的二進制表示。填充後的消息 m'的比特長度爲1024的倍數。

例如:對消息01100001 01100010 01100011,其長度 =24,經填充得到比特串:

                  

事實上,在編寫程序時,應該先進行分組,對滿足1024bit的分組先進行計算。當分到最後一組不足1024bit時,再進行填充。

3.3 加密處理

將填充後的消息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雜湊值

附錄A 運算示例

原始輸入消息:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章