hash算法與sha區(qū)別?
今天要為大家介紹的是哈希算法,在介紹SHA之前,只有了解什么是SHA,我們才清楚SSL證書如何使用哈希來形成數(shù)字簽名。那么什么是哈希呢? HASH算法將任意長度的二進(jìn)制值映射為較短的固定長度的二進(jìn)制值,這個小的二進(jìn)制值稱為哈希值。
什么是哈希值?
例如句子“那只敏捷的棕色狐貍跳過了懶惰的狗,”通過一種稱為CRC32的特定算法運行,將會產(chǎn)生結(jié)果“07606bb6”。而這個結(jié)果被稱為HASH(哈希)。
SHA算法,是HASH算法的一種。SHA表示加密散列算法,用于網(wǎng)絡(luò)加密安全。一般情況下,電腦可以對hash進(jìn)行識別、比較、或?qū)ξ募妥址M(jìn)行數(shù)據(jù)計算。計算機會先對HASH進(jìn)行計算,然后與原始文件進(jìn)行校驗。HASH算法的重要特征是其確定性。上述的列子,在任何一臺電腦使用任意的hash算法得出的結(jié)果都是一樣的。
散列算法的一個關(guān)鍵屬性是確定性。世界上任何理解您選擇的散列算法的計算機都可以在本地計算我們的例句的散列并得到相同的答案。
對于加密散列算法的最重要的因素是他們產(chǎn)生不可逆的和獨特的哈希值。不可逆性,數(shù)據(jù)一旦產(chǎn)生哈希值,那么就不可能通過單一的哈希值解出原始的數(shù)據(jù)。獨特性,兩個不懂的數(shù)據(jù)是不能產(chǎn)生同樣的哈希值。