哈希算法,也稱為散列函式算法,是一種將任意長度的數據(稱為「訊息」)轉換為固定長度的字元串(稱為「哈希值」或簡稱「哈希」)的數學函式或算法。哈希算法的作用包括數據加密、數據壓縮、數據檢索等。
哈希算法的特點包括:
確定性:對於同一個輸入,無論在什麼時候、什麼地方、用什麼設備計算,得到的輸出都是相同的。
不可逆性:給定一個輸出,無法推算出輸入,只能通過窮舉法來嘗試找到輸入。
敏感性:如果輸入稍微改變了一點點,那麼經過哈希算法,得到的輸出將會變得面目全非。
碰撞抵抗性:很難找到兩個不同的輸入,使得它們經過哈希算法得到相同的輸出。
哈希算法的用途包括:
用於檢驗下載的檔案是否正確。
用於用戶登錄時密碼的驗證。
用於數據安全、數據壓縮、數據檢索等領域。
常見的哈希算法包括MD2、MD4、MD5和SHA-1等。這些算法在輸入數據中所做的更改就可以更改結果哈希值中的所有位,因此,哈希對於檢測數據對象(例如訊息)中的修改很有用。此外,好的哈希算法使得構造兩個相互獨立且具有相同哈希的輸入不能通過計算方法實現。