演算法系列3《SHA》

2022-05-18 06:56:10 字數 863 閱讀 4512

sha是一種資料加密演算法,該演算法經過加密專家多年來的發展和改進已日益完善,現在已成為公認的最安全的雜湊演算法之一,並被廣泛使用。該演算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預對映或資訊),並把它們轉化為長度較短、位數固定的輸出序列即雜湊值(也稱為資訊摘要或資訊認證**)的過程。雜湊函式值可以說時對明文的一種「指紋」或是「摘要」所以對雜湊值的數字簽名就可以視為對此明文的數字簽名。

單向雜湊函式一般用於產生訊息摘要,金鑰加密等,常見的有:

a)  md5(message digestalgorithm 5):是rsa資料安全公司開發的一種單向雜湊演算法。

b)  sha(secure hashalgorithm):可以對任意長度的資料運算生成乙個160位的數值;

sha-1與md5的比較,因為二者均由md4匯出,sha-1和md5彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:

ø 對強行攻擊的安全性:最顯著和最重要的區別是sha-1摘要比md5摘要長32 位。使用強行技術,產生任何乙個報文使其摘要等於給定報摘要的難度對md5是2^128數量級的操作,而對sha-1則是2^160數量級的操作。這樣,sha-1對強行攻擊有更大的強度。

ø 對密碼分析的安全性:由於md5的設計,易受密碼分析的攻擊,sha-1顯得不易受這樣的攻擊。

ø 速度:在相同的硬體上,sha-1的執行速度比md5慢。

該演算法在fips 1801 中被標準化。sha-1對任意長度的報文的輸入,產生乙個20位元組的雜湊值。本雜湊演算法的標誌編碼為16進製制數』01』。

文/閆鑫原創 

java演算法系列

棧的概念 棧是一種特殊的線性表,堆疊的資料元素以及資料元素之間的關係和線性表是完全一樣的。差別是線性表是在任意位置進行插入和刪除操作,棧是只允許在固定的一端進行插入和刪除,棧的插入和刪除只允許在棧頂,棧的插入和刪除通常稱為進棧和出棧。資料集合 每個資料元素的資料型別可以是任意的型別 操作的集合 進棧...

演算法系列 Move Zeroes

given an array nums,write a function to move all 0 s to the end of it while maintaining the relative order of the non zero elements.for example,given ...

演算法系列 Missing Number

given an array containing n distinct numbers taken from 0,1,2,n,find the one that is missing from the array.for example,given nums 0,1,3 return 2.note...