哈希码介绍
經常有人問及Hash碼的問題,Hash碼就是Hash函數映射后的值。Hash函數在密碼學方面經常用到。具體的如下所述:
Hash函數 Hash函數,又稱單向散列函數,是將任意長的消息映射為定長的Hash值的公開函數。Hash函數在密碼學中應用十分廣泛,與各種加密算法有著密切的聯系。Hash函數的模型如下: h=H(M) 其中,M是待處理的消息;H是Hash函數;h是生成的消息摘要,它的長度是固定的,并且和M的長度無關。 Hash函數具有下面一些性質: (1) Hash函數可應用于任意長度的數據塊; (2) Hash函數產生定長的輸出; (3)對于任何給定的M和H,計算h比較容易,用硬件和軟件均可實現; (4)對任何給定的H和h,無法計算出M,這又可稱之為單向性; (5)對任何給定的H和M,找到不同的消息M1,使得H(M1)=拭州,在計算上是不可行的,這又稱之為抗弱碰撞性; (6)對任何給定的H,找到不同的消息M1和M2,使得H(M1) = H(M2),在計算上是不可行的,這又稱之為抗碰撞性。 Java里的String類的Hash函數是: s[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1] s[i]是字符串中的第i個字符;空字符串的Hash值是0?
總結
- 上一篇: 金蝶K3WISE盘点机PDA,移动便携扫
- 下一篇: Quick Easy系列软件