當前位置:編程學習大全網 - 編程語言 - 什麽是SHA算法?

什麽是SHA算法?

與MD5算法類似,SHA(安全哈希算法)也是壹種信息摘要生成算法,SHA是美國NIST和NSA設計的標準哈希算法。

SHA-1是第壹代SHA算法標準,後來的SHA-224、SHA-256、SHA-384和SHA-512統稱為SHA-2。

顯然,信息摘要越長,碰撞的概率越低,破解難度越大。但同時消耗的性能和占用的空間也越高。

如前所述,SHA-1和SHA-2是算法的兩個不同版本,結構和簽名長度不同,所以SHA-2可以理解為SHA-1的後繼者。

SSL行業選擇SHA作為數字簽名的哈希算法。從2011到2015,SHA-1壹直是占優勢的算法。但是隨著互聯網技術的提高,SHA-1的缺點也越來越突出。目前SHA-2已經成為新的標準,所以現在發布的SSL證書必須用SHA-2算法簽名。可能會有人偶爾看到SHA-2的SHA-2 384位證書,但很少看到224位證書,因為224位證書是不允許用於公信的,512位證書是軟件不支持的。

以下是SSL證書的SHA-1和SHA-2簽名之間的比較。

從表面上看,它們似乎沒什麽特別的,但是數字簽名在SSL/TLS的安全性中起著重要的作用。哈希值越大,組合越多,安全性越高。SHA-2比SHA-1安全得多。

密碼哈希算法的壹個重要功能是生成唯壹的哈希。當兩個不同的值或文件可以生成相同的哈希時,就會發生所謂的沖突。只有當沒有碰撞時,數字簽名的安全性才能得到保證。沖突對於哈希算法來說是極其危險的,因為沖突允許兩個文件產生相同的簽名。當計算機檢查簽名時,即使文件沒有實際簽名,它也會被計算機識別為有效。

MD5摘要的長度是128bit,SHA-1摘要的長度是160bit。多壹個32位意味著什麽?不同明文的碰撞概率降低2 ^ 32 = 324294967296倍。

因為SHA-1的摘要比MD5長,所以SHA-1生成摘要的性能比MD5略低。

我們先來回顧壹下MD5算法的核心流程。沒看過的可以點擊這個鏈接:MD5算法是什麽?

簡而言之,MD5將128bit的信息摘要分成四段(字),每段32 bits,在循環過程中交替進行A、B、C、D運算,最終形成128bit的摘要結果。

我們再來看看SHA-1算法。核心流程都差不多。主要區別是160bit的信息摘要分為A、B、C、D、e五段。

再看SHA-2系列算法,核心流程更復雜,信息匯總分為A、B、C、D、E、F、G、h八段

SHA-256每段長度為32bit,SHA-512每段長度為64bit。SHA-224和SHA-384是基於前兩者生成的結果進行切割的。

以60M文件為測試樣本,經過1000次測試,三種算法的性能如下:

在安全性方面,很明顯SHA256(也叫SHA2)的安全性最高,但它比其他兩個花費的時間要多得多。MD5比較容易碰撞,所以SHA1應該是三者中最好的加密算法。

  • 上一篇:河北邯鄲中考總分多少2023年
  • 下一篇:簡單介紹壹下帝豪的儀表盤內容,希望對大家有所幫助
  • copyright 2024編程學習大全網