天天看點

漫畫:什麼是SHA系列算法?

漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?

SHA-1

SHA-1算法可以從明文生成160bit的資訊摘要,示例如下:

給定明文: abcd

SHA-1摘要: 81FE8BFE87576C3ECB22426F8E57847382917ACF

SHA-1 與 MD5的主要差別是什麼呢?

1.摘要長度不同。

MD5的摘要的長度盡128bit,SHA-1摘要長度160bit。多出32bit意味着什麼呢?不同明文的碰撞幾率降低了2^32 = 324294967296倍。

2.性能略有差别

SHA-1生成摘要的性能比MD5略低。

漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?

SHA-2

SHA-2是一系列SHA算法變體的總稱,其中包含如下子版本:

SHA-256:可以生成長度256bit的資訊摘要。

SHA-224:SHA-256的“閹割版”,可以生成長度224bit的資訊摘要。

SHA-512:可以生成長度512bit的資訊摘要。

SHA-384:SHA-512的“閹割版”,可以生成長度384bit的資訊摘要。

顯然,資訊摘要越長,發生碰撞的幾率就越低,破解的難度就越大。但同時,耗費的性能和占用的空間也就越高。

漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?

明文: abcd

MD5摘要:

e2fc714c4727ee9395f324cd2e7f331f

SHA-256摘要:

88d4266fd4e6338d13b845fcf289579d209c897823b9217da3e161936f031589

合成摘要:

e2fc714c4727ee93209c897823b9217da3e161936f031589

漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?
漫畫:什麼是SHA系列算法?

我們先來回顧一下MD5算法的核心過程,沒看過的小夥伴們可以點選這個連結:

漫畫:什麼是MD5算法?

簡而言之,MD5把128bit的資訊摘要分成A,B,C,D四段(Words),每段32bit,在循環過程中交替運算A,B,C,D,最終組成128bit的摘要結果。

漫畫:什麼是SHA系列算法?

再看一下SHA-1算法,核心過程大同小異,主要的不同點是把160bit的資訊摘要分成了A,B,C,D,E五段。

漫畫:什麼是SHA系列算法?

再看一下SHA-2系列算法,核心過程更複雜一些,把資訊摘要分成了A,B,C,D,E,F,G,H八段。

漫畫:什麼是SHA系列算法?

其中SHA-256的每一段摘要長度是32bit,SHA-512的每一段摘要長度是64bit。SHA-224和SHA-384則是在前兩者生成結果的基礎上做出裁剪。

漫畫:什麼是SHA系列算法?

幾點補充:

SHA家族的最新成員SHA-3已經于2015年問世。關于SHA-3的細節,有興趣的小夥伴們可以查詢資料進一步學習。

—————END—————