當前位置:股票大全官網 - 財經新聞 - 哈希表的查找性能

哈希表的查找性能

哈希表的搜索過程與表的制作過程基本相同。壹些關鍵代碼可以通過哈希函數轉換的地址直接找到,而另壹些關鍵代碼在哈希函數獲得的地址中存在沖突,因此需要根據處理沖突的方法找到它們。在介紹的三種處理沖突的方法中,沖突後的搜索仍然是將給定值與關鍵代碼進行比較的過程。因此,哈希表搜索效率的衡量標準仍然是平均搜索長度。

在搜索過程中,關鍵代碼比較的次數取決於沖突的次數。如果沖突少,搜索效率就會高,如果沖突多,搜索效率就會低。因此,影響沖突數量的因素,即影響搜索效率的因素。影響沖突數量的因素有三個:

1.哈希函數是否壹致;

2.處理沖突的方法;

3.哈希表的填充因子。

哈希表的填充因子定義為:α =表中填充的元素數量/哈希表的長度。

α是哈希表填充程度的符號因子。由於表格的長度是壹個固定值,α與表格中填充的元素數量成正比,因此α越大,表格中填充的元素越多,沖突的可能性也越大;α越小,表格中填充的元素越少,沖突的可能性越小。

事實上,哈希表的平均搜索長度是填充因子α的函數,但處理沖突的不同方法具有不同的功能。

知道了哈希的基本定義,就不能不提到壹些著名的哈希算法。MD5和SHA-1可以說是目前應用最廣泛的哈希算法,它們都是基於MD4設計的。那麽它們都是什麽意思呢?

以下是壹份簡短聲明:

⑴ MD4

MD4(RFC 1320)是由麻省理工學院的羅納德·L·李維斯特於1990年設計的,MD是消息摘要的縮寫。它適用於字長為32位的處理器上的高速軟件實現-它是基於32位操作數的位操作來實現的。

⑵ MD5

MD5(RFC 1321)是Rivest在1991中制作的MD4的改進版本。其輸入仍按512位分組,其輸出是四個32位字的級聯,這與MD4相同。MD5比MD4更復雜,速度更慢,但更安全,在反分析和反差異方面表現更好。

(3)Sha-1和其他

SHA1由NIST國家安全局設計用於DSA。它為長度小於264的輸入生成長度為160bit的哈希值,因此更能抵抗暴力破解。SHA-1是基於與MD4相同的原理設計的,並模仿了該算法。

那麽這些哈希算法有什麽用呢?

哈希算法在信息安全中的應用主要體現在以下三個方面:

⑴文件驗證

我們熟悉奇偶校驗和CRC校驗。這兩種檢查沒有抵抗數據篡改的能力。它們可以在壹定程度上檢測數據傳輸中的通道錯誤,但無法防止對數據的惡意破壞。

md5哈希算法的數字指紋特性使其成為目前使用最廣泛的文件完整性校驗和算法,許多Unix系統都提供了計算MD5校驗和的命令。

⑵數字簽名

哈希算法也是現代密碼學的重要組成部分。由於非對稱算法運算速度慢,單向哈希函數在數字簽名協議中起著重要作用。對哈希值(也稱為數字摘要)進行數字簽名可被視為等同於對文件本身進行統計數字簽名。這樣的協議還有其他優勢。

(3)

以下認證協議也稱為挑戰認證模式:當傳輸信道可以被攔截但不能被篡改時,這是壹種簡單而安全的方法。

MD5和SHA1的破解

2004年8月6日,在美國加州聖巴巴拉舉行的國際密碼學大會上,山東大學王小雲教授首次公布了她和她的研究團隊的研究成果MD5、Haval-128、MD4和RIPEMD四種著名密碼算法的解碼結果。2005年2月,宣布SHA-1的密碼被破解。