當前位置:編程學習大全網 - 編程軟體 - Hash算法簡介

Hash算法簡介

哈希算法(Hash Algorithm),又稱散列算法,是壹種從任意數據中提取小的數字的方法。散列算法就是壹種以較短的信息來保數據唯壹性的標誌,這種標誌與數據的每壹個字節都相關,而且難以找到逆向規律。因此,當原數據發生改變時,其標誌值也會發生改變。

壹個優秀的 hash 算法,將能實現:

但在不同的使用場景中,如數據結構和安全領域裏,其中對某壹些特點會有所側重。

以HashMap為例,key(hash值)對應壹個(或多個數據),key的作用是,對於抗碰撞的要求沒有那麽高。換句話說,hash出來的key,只要保證value大致均勻的放在不同的桶裏就可以了。但整個算法的set性能,直接與hash值產生的速度有關,所以這時候的hash值的產生速度就尤為重要,如JDK中的String.hashCode():

在密碼學中,hash算法的作用主要是用於消息摘要和簽名,對整個消息的完整性進行校驗。這對於抗碰撞和抗篡改能力要求極高,對速度的要求在其次。以MD5為例,其輸出長度為128位,設計預期碰撞概率為1/(2^128),這是壹個極小極小的數字.

目前流行的 Hash 算法包括 MD5、SHA-1 和 SHA-2。

可以看出,上面這幾種流行的算法,它們最重要的壹點區別就是”強抗碰撞性”。

  • 上一篇:輪轂發光燈會罰款嗎?
  • 下一篇:羅技g103和g105哪款好
  • copyright 2024編程學習大全網