散列算法
1 簡介
它的典型應用是對一段信息產生信息摘要。
2 常見算法
2.1 MD5算法
MD5
用的是哈希函數,它的典型應用是對一段信息產生信息摘要,以防止被篡改。嚴格來說,MD5不是一種加密算法而是摘要算法。無論是多長的輸入,MD5
都會輸出長度爲128bits
的一個串 (通常用 16 進制 表示爲 32 個字符)。
2.2 SHA1算法
SHA1
是和 MD5 一樣流行的消息摘要算法,然而 SHA1
比 MD5 的安全性更強。對於長度小於 2^64
位的消息,SHA1
會產生一個 160
位的消息摘要。基於MD5、SHA1 的信息摘要特性以及不可逆 (一般而言),可以被應用在檢查文件完整性以及數字簽名等場景。
2.3 HMAC算法
HMAC
是密鑰相關的哈希運算消息認證碼(Hash-based Message Authentication Code),HMAC
運算利用哈希算法 (MD5、SHA1 等),以一個密鑰和一個消息爲輸入,生成一個消息摘要作爲輸出。
HMAC 發送方和接收方都使用 key 進行計算,而沒有這把 key 的第三方,則是無法計算出正確的散列值的,這樣就可以防止數據被篡改。
3 總結
待續…