簡體   English   中英

具有獨特哈希的快速哈希功能

[英]Fast hash function with unique hashes

我正在寫一個磁盤緩存,其中文件名是鍵。 密鑰可以大於最大文件名長度,因此需要進行哈希處理。 什么是發生沖突概率極低的快速哈希函數(以便我可以忽略它)?

基本上,我正在尋找沒有安全要求的MD5更快的替代方案。

(平台= Android,語言= Java。)

如果您的哈希是均勻分布的,那么您可以從沖突之前希望處理的大約文件數中計算出所需哈希的大小(以位為單位)。 基本上,由於生日的悖論,它是位數的兩倍。

因此,例如,如果您對一百萬個文件后發生的沖突感到滿意,那么您需要一個大約40位log(2 * log2(1e6))的has。

相反,如果哈希為N位,那么它對2 ^(N / 2)個文件沒有沖突(或多或少)是有利的。

有很多快速哈希。 例如, xxhash是64位哈希,因此適合大約4,000,000,000個文件。 谷歌的快速哈希是另一個。

如果您想要超過64位(沖突前超過40億個文件),則可以使用具有更大輸出的哈希值,也可以將兩個64位哈希值結合在一起(一個來自原始文件的哈希值,另一個以某種方式進行了修改(例如以空格開頭))。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM