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

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

目錄

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
0 6a09e667f3bcc908 bb67ae8584caa73b 3c6ef372fe94f82b a54ff53a5f1d36f1 510e527fade682d1 9b05688c2b3e6c1f 1f83d9abfb41bd6b 5be0cd19137e2179
1 f6afceb8bcfcddf5 6a09e667f3bcc908 bb67ae8584caa73b 3c6ef372fe94f82b 58cb02347ab51f91 510e527fade682d1 9b05688c2b3e6c1f 1f83d9abfb41bd6b
2 1320f8c9fb872cc0 f6afceb8bcfcddf5 6a09e667f3bcc908 bb67ae8584caa73b c3d4ebfd48650ffa 58cb02347ab51f91 510e527fade682d1 9b05688c2b3e6c1f
3 ebcffc07203d91f3 1320f8c9fb872cc0 f6afceb8bcfcddf5 6a09e667f3bcc908 dfa9b239f2697812 c3d4ebfd48650ffa 58cb02347ab51f91 510e527fade682d1
4 5a83cb3e80050e82 ebcffc07203d91f3 1320f8c9fb872cc0 f6afceb8bcfcddf5 0b47b4bb1928990e dfa9b239f2697812 c3d4ebfd48650ffa 58cb02347ab51f91
5 b680953951604860 5a83cb3e80050e82 ebcffc07203d91f3 1320f8c9fb872cc0 745aca4a342ed2e2 0b47b4bb1928990e dfa9b239f2697812 c3d4ebfd48650ffa
6 af573b02403e89cd b680953951604860 5a83cb3e80050e82 ebcffc07203d91f3 96f60209b6dc35ba 745aca4a342ed2e2 0b47b4bb1928990e dfa9b239f2697812
7 c4875b0c7abc076b af573b02403e89cd b680953951604860 5a83cb3e80050e82 5a6c781f54dcc00c 96f60209b6dc35ba 745aca4a342ed2e2 0b47b4bb1928990e
8 8093d195e0054fa3 c4875b0c7abc076b af573b02403e89cd b680953951604860 86f67263a0f0ec0a 5a6c781f54dcc00c 96f60209b6dc35ba 745aca4a342ed2e2
9 f1eca5544cb89225 8093d195e0054fa3 c4875b0c7abc076b af573b02403e89cd d0403c398fc40002 86f67263a0f0ec0a 5a6c781f54dcc00c 96f60209b6dc35ba
10 81782d4a5db48f03 f1eca5544cb89225 8093d195e0054fa3 c4875b0c7abc076b 00091f460be46c52 d0403c398fc40002 86f67263a0f0ec0a 5a6c781f54dcc00c
11 69854c4aa0f25b59 81782d4a5db48f03 f1eca5544cb89225 8093d195e0054fa3 d375471bde1ba3f4 00091f460be46c52 d0403c398fc40002 86f67263a0f0ec0a
12 db0a9963f80c2eaa 69854c4aa0f25b59 81782d4a5db48f03 f1eca5544cb89225 475975b91a7a462c d375471bde1ba3f4 00091f460be46c52 d0403c398fc40002
13 5e41214388186c14 db0a9963f80c2eaa 69854c4aa0f25b59 81782d4a5db48f03 cdf3bff2883fc9d9 475975b91a7a462c d375471bde1ba3f4 00091f460be46c52
14 44249631255d2ca0 5e41214388186c14 db0a9963f80c2eaa 69854c4aa0f25b59 860acf9effba6f61 cdf3bff2883fc9d9 475975b91a7a462c d375471bde1ba3f4
15 fa967eed85a08028 44249631255d2ca0 5e41214388186c14 db0a9963f80c2eaa 874bfe5f6aae9f2f 860acf9effba6f61 cdf3bff2883fc9d9 475975b91a7a462c
16 0ae07c86b1181c75 fa967eed85a08028 44249631255d2ca0 5e41214388186c14 a77b7c035dd4c161 874bfe5f6aae9f2f 860acf9effba6f61 cdf3bff2883fc9d9
17 caf81a425d800537 0ae07c86b1181c75 fa967eed85a08028 44249631255d2ca0 2deecc6b39d64d78 a77b7c035dd4c161 874bfe5f6aae9f2f 860acf9effba6f61
18 4725be249ad19e6b caf81a425d800537 0ae07c86b1181c75 fa967eed85a08028 f47e8353f8047455 2deecc6b39d64d78 a77b7c035dd4c161 874bfe5f6aae9f2f
19 3c4b4104168e3edb 4725be249ad19e6b caf81a425d800537 0ae07c86b1181c75 29695fd88d81dbd0 f47e8353f8047455 2deecc6b39d64d78 a77b7c035dd4c161
20 9a3fb4d38ab6cf06 3c4b4104168e3edb 4725be249ad19e6b caf81a425d800537 f14998dd5f70767e 29695fd88d81dbd0 f47e8353f8047455 2deecc6b39d64d78
21 8dc5ae65569d3855 9a3fb4d38ab6cf06 3c4b4104168e3edb 4725be249ad19e6b 4bb9e66d1145bfdc f14998dd5f70767e 29695fd88d81dbd0 f47e8353f8047455
22 da34d6673d452dcf 8dc5ae65569d3855 9a3fb4d38ab6cf06 3c4b4104168e3edb 8e30ff09ad488753 4bb9e66d1145bfdc f14998dd5f70767e 29695fd88d81dbd0
23 3e2644567b709a78 da34d6673d452dcf 8dc5ae65569d3855 9a3fb4d38ab6cf06 0ac2b11da8f571c6 8e30ff09ad488753 4bb9e66d1145bfdc f14998dd5f70767e
24 4f6877b58fe55484 3e2644567b709a78 da34d6673d452dcf 8dc5ae65569d3855 c66005f87db55233 0ac2b11da8f571c6 8e30ff09ad488753 4bb9e66d1145bfdc
25 9aff71163fa3a940 4f6877b58fe55484 3e2644567b709a78 da34d6673d452dcf d3ecf13769180e6f c66005f87db55233 0ac2b11da8f571c6 8e30ff09ad488753
26 0bc5f791f8e6816b 9aff71163fa3a940 4f6877b58fe55484 3e2644567b709a78 6ddf1fd7edcce336 d3ecf13769180e6f c66005f87db55233 0ac2b11da8f571c6
27 884c3bc27bc4f941 0bc5f791f8e6816b 9aff71163fa3a940 4f6877b58fe55484 e6e48c9a8e948365 6ddf1fd7edcce336 d3ecf13769180e6f c66005f87db55233
28 eab4a9e5771b8d09 884c3bc27bc4f941 0bc5f791f8e6816b 9aff71163fa3a940 09068a4e255a0dac e6e48c9a8e948365 6ddf1fd7edcce336 d3ecf13769180e6f
29 e62349090f47d30a eab4a9e5771b8d09 884c3bc27bc4f941 0bc5f791f8e6816b 0fcdf99710f21584 09068a4e255a0dac e6e48c9a8e948365 6ddf1fd7edcce336
30 74bf40f869094c63 e62349090f47d30a eab4a9e5771b8d09 884c3bc27bc4f941 f0aec2fe1437f085 0fcdf99710f21584 09068a4e255a0dac e6e48c9a8e948365
31 4c4fbbb75f1873a6 74bf40f869094c63 e62349090f47d30a eab4a9e5771b8d09 73e025d91b9efea3 f0aec2fe1437f085 0fcdf99710f21584 09068a4e255a0dac
32 ff4d3f1f0d46a736 4c4fbbb75f1873a6 74bf40f869094c63 e62349090f47d30a 3cd388e119e8162e 73e025d91b9efea3 f0aec2fe1437f085 0fcdf99710f21584
33 a0509015ca08c8d4 ff4d3f1f0d46a736 4c4fbbb75f1873a6 74bf40f869094c63 e1034573654a106f 3cd388e119e8162e 73e025d91b9efea3 f0aec2fe1437f085
34 60d4e6995ed91fe6 a0509015ca08c8d4 ff4d3f1f0d46a736 4c4fbbb75f1873a6 efabbd8bf47c041a e1034573654a106f 3cd388e119e8162e 73e025d91b9efea3
35 2c59ec7743632621 60d4e6995ed91fe6 a0509015ca08c8d4 ff4d3f1f0d46a736 0fbae670fa780fd3 efabbd8bf47c041a e1034573654a106f 3cd388e119e8162e
36 1a081afc59fdbc2c 2c59ec7743632621 60d4e6995ed91fe6 a0509015ca08c8d4 f098082f502b44cd 0fbae670fa780fd3 efabbd8bf47c041a e1034573654a106f
37 88df85b0bbe77514 1a081afc59fdbc2c 2c59ec7743632621 60d4e6995ed91fe6 8fbfd0162bbf4675 f098082f502b44cd 0fbae670fa780fd3 efabbd8bf47c041a
38 002bb8e4cd989567 88df85b0bbe77514 1a081afc59fdbc2c 2c59ec7743632621 66adcfa249ac7bbd 8fbfd0162bbf4675 f098082f502b44cd 0fbae670fa780fd3
39 b3bb8542b3376de5 002bb8e4cd989567 88df85b0bbe77514 1a081afc59fdbc2c b49596c20feba7de 66adcfa249ac7bbd 8fbfd0162bbf4675 f098082f502b44cd
40 8e01e125b855d225 b3bb8542b3376de5 002bb8e4cd989567 88df85b0bbe77514 0c710a47ba6a567b b49596c20feba7de 66adcfa249ac7bbd 8fbfd0162bbf4675
41 b01521dd6a6be12c 8e01e125b855d225 b3bb8542b3376de5 002bb8e4cd989567 169008b3a4bb170b 0c710a47ba6a567b b49596c20feba7de 66adcfa249ac7bbd
42 e96f89dd48cbd851 b01521dd6a6be12c 8e01e125b855d225 b3bb8542b3376de5 f0996439e7b50cb1 169008b3a4bb170b 0c710a47ba6a567b b49596c20feba7de
43 bc05ba8de5d3c480 e96f89dd48cbd851 b01521dd6a6be12c 8e01e125b855d225 639cb938e14dc190 f0996439e7b50cb1 169008b3a4bb170b 0c710a47ba6a567b
44 35d7e7f41defcbd5 bc05ba8de5d3c480 e96f89dd48cbd851 b01521dd6a6be12c cc5100997f5710f2 639cb938e14dc190 f0996439e7b50cb1 169008b3a4bb170b
45 c47c9d5c7ea8a234 35d7e7f41defcbd5 bc05ba8de5d3c480 e96f89dd48cbd851 858d832ae0e8911c cc5100997f5710f2 639cb938e14dc190 f0996439e7b50cb1
46 021fbadbabab5ac6 c47c9d5c7ea8a234 35d7e7f41defcbd5 bc05ba8de5d3c480 e95c2a57572d64d9 858d832ae0e8911c cc5100997f5710f2 639cb938e14dc190
47 f61e672694de2d67 021fbadbabab5ac6 c47c9d5c7ea8a234 35d7e7f41defcbd5 c6bc35740d8daa9a e95c2a57572d64d9 858d832ae0e8911c cc5100997f5710f2
48 6b69fc1bb482feac f61e672694de2d67 021fbadbabab5ac6 c47c9d5c7ea8a234 35264334c03ac8ad c6bc35740d8daa9a e95c2a57572d64d9 858d832ae0e8911c
49 571f323d96b3a047 6b69fc1bb482feac f61e672694de2d67 021fbadbabab5ac6 271580ed6c3e5650 35264334c03ac8ad c6bc35740d8daa9a e95c2a57572d64d9
50 ca9bd862c5050918 571f323d96b3a047 6b69fc1bb482feac f61e672694de2d67 dfe091dab182e645 271580ed6c3e5650 35264334c03ac8ad c6bc35740d8daa9a
51 813a43dd2c502043 ca9bd862c5050918 571f323d96b3a047 6b69fc1bb482feac 07a0d8ef821c5e1a dfe091dab182e645 271580ed6c3e5650 35264334c03ac8ad
52 d43f83727325dd77 813a43dd2c502043 ca9bd862c5050918 571f323d96b3a047 483f80a82eaee23e 07a0d8ef821c5e1a dfe091dab182e645 271580ed6c3e5650
53 03df11b32d42e203 d43f83727325dd77 813a43dd2c502043 ca9bd862c5050918 504f94e40591cffa 483f80a82eaee23e 07a0d8ef821c5e1a dfe091dab182e645
54 d63f68037ddf06aa 03df11b32d42e203 d43f83727325dd77 813a43dd2c502043 a6781efe1aa1ce02 504f94e40591cffa 483f80a82eaee23e 07a0d8ef821c5e1a
55 f650857b5babda4d d63f68037ddf06aa 03df11b32d42e203 d43f83727325dd77 9ccfb31a86df0f86 a6781efe1aa1ce02 504f94e40591cffa 483f80a82eaee23e
56 63b460e42748817e f650857b5babda4d d63f68037ddf06aa 03df11b32d42e203 c6b4dd2a9931c509 9ccfb31a86df0f86 a6781efe1aa1ce02 504f94e40591cffa
57 7a52912943d52b05 63b460e42748817e f650857b5babda4d d63f68037ddf06aa d2e89bbd91e00be0 c6b4dd2a9931c509 9ccfb31a86df0f86 a6781efe1aa1ce02
58 4b81c3aec976ea4b 7a52912943d52b05 63b460e42748817e f650857b5babda4d 70505988124351ac d2e89bbd91e00be0 c6b4dd2a9931c509 9ccfb31a86df0f86
59 581ecb3355dcd9b8 4b81c3aec976ea4b 7a52912943d52b05 63b460e42748817e 6a3c9b0f71c8bf36 70505988124351ac d2e89bbd91e00be0 c6b4dd2a9931c509
60 2c074484ef1eac8c 581ecb3355dcd9b8 4b81c3aec976ea4b 7a52912943d52b05 4797cde4ed370692 6a3c9b0f71c8bf36 70505988124351ac d2e89bbd91e00be0
61 3857dfd2fc37d3ba 2c074484ef1eac8c 581ecb3355dcd9b8 4b81c3aec976ea4b a6af4e9c9f807e51 4797cde4ed370692 6a3c9b0f71c8bf36 70505988124351ac
62 cfcd928c5424e2b6 3857dfd2fc37d3ba 2c074484ef1eac8c 581ecb3355dcd9b8 09aee5bda1644de5 a6af4e9c9f807e51 4797cde4ed370692 6a3c9b0f71c8bf36
63 a81dedbb9f19e643 cfcd928c5424e2b6 3857dfd2fc37d3ba 2c074484ef1eac8c 84058865d60a05fa 09aee5bda1644de5 a6af4e9c9f807e51 4797cde4ed370692
64 ab44e86276478d85 a81dedbb9f19e643 cfcd928c5424e2b6 3857dfd2fc37d3ba cd881ee59ca6bc53 84058865d60a05fa 09aee5bda1644de5 a6af4e9c9f807e51
65 5a806d7e9821a501 ab44e86276478d85 a81dedbb9f19e643 cfcd928c5424e2b6 aa84b086688a5c45 cd881ee59ca6bc53 84058865d60a05fa 09aee5bda1644de5
66 eeb9c21bb0102598 5a806d7e9821a501 ab44e86276478d85 a81dedbb9f19e643 3b5fed0d6a1f96e1 aa84b086688a5c45 cd881ee59ca6bc53 84058865d60a05fa
67 46c4210ab2cc155d eeb9c21bb0102598 5a806d7e9821a501 ab44e86276478d85 29fab5a7bff53366 3b5fed0d6a1f96e1 aa84b086688a5c45 cd881ee59ca6bc53
68 54ba35cf56a0340e 46c4210ab2cc155d eeb9c21bb0102598 5a806d7e9821a501 1c66f46d95690bcf 29fab5a7bff53366 3b5fed0d6a1f96e1 aa84b086688a5c45
69 181839d609c79748 54ba35cf56a0340e 46c4210ab2cc155d eeb9c21bb0102598 0ada78ba2d446140 1c66f46d95690bcf 29fab5a7bff53366 3b5fed0d6a1f96e1
70 fb6aaae5d0b6a447 181839d609c79748 54ba35cf56a0340e 46c4210ab2cc155d e3711cb6564d112d 0ada78ba2d446140 1c66f46d95690bcf 29fab5a7bff53366
71 7652c579cb60f19c fb6aaae5d0b6a447 181839d609c79748 54ba35cf56a0340e aff62c9665ff80fa e3711cb6564d112d 0ada78ba2d446140 1c66f46d95690bcf
72 f15e9664b2803575 7652c579cb60f19c fb6aaae5d0b6a447 181839d609c79748 947c3dfafee570ef aff62c9665ff80fa e3711cb6564d112d 0ada78ba2d446140
73 358406d165aee9ab f15e9664b2803575 7652c579cb60f19c fb6aaae5d0b6a447 8c7b5fd91a794ca0 947c3dfafee570ef aff62c9665ff80fa e3711cb6564d112d
74 20878dcd29cdfaf5 358406d165aee9ab f15e9664b2803575 7652c579cb60f19c 054d3536539948d0 8c7b5fd91a794ca0 947c3dfafee570ef aff62c9665ff80fa
75 33d48dabb5521de2 20878dcd29cdfaf5 358406d165aee9ab f15e9664b2803575 2ba18245b50de4cf 054d3536539948d0 8c7b5fd91a794ca0 947c3dfafee570ef
76 c8960e6be864b916 33d48dabb5521de2 20878dcd29cdfaf5 358406d165aee9ab 995019a6ff3ba3de 2ba18245b50de4cf 054d3536539948d0 8c7b5fd91a794ca0
77 654ef9abec389ca9 c8960e6be864b916 33d48dabb5521de2 20878dcd29cdfaf5 ceb9fc3691ce8326 995019a6ff3ba3de 2ba18245b50de4cf 054d3536539948d0
78 d67806db8b148677 654ef9abec389ca9 c8960e6be864b916 33d48dabb5521de2 25c96a7768fb2aa3 ceb9fc3691ce8326 995019a6ff3ba3de 2ba18245b50de4cf
79 10d9c4c4295599f6 d67806db8b148677 654ef9abec389ca9 c8960e6be864b916 9bb4d39778c07f9e 25c96a7768fb2aa3 ceb9fc3691ce8326 995019a6ff3ba3de
80 73a54f399fa4b1b2 10d9c4c4295599f6 d67806db8b148677 654ef9abec389ca9 d08446aa79693ed7 9bb4d39778c07f9e 25c96a7768fb2aa3 ceb9fc3691ce8326

雜湊值h0~h7

h0:0xddaf35a193617aba

h1:0xcc417349ae204131

h2:0x12e6fa4e89a97ea2

h3:0x0a9eeee64b55d39a

h4:0x2192992a274fc1a8

h5:0x36ba3c23a3feebbd

h6:0x454d4423643ce80e

h7:0x2a9ac94fa54ca49f

參考文獻:

[1]https://en.wikipedia.org/wiki/Secure_Hash_Algorithms

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