2011-09-07 59 views

回答

1

您可以在這裏看到Firefox使用的哈希算法:http://hg.mozilla.org/mozilla-central/file/09935ede3c77/netwerk/cache/nsDiskCacheDevice.cpp#l272。它非常簡單,但與鏈接的不同(我檢查了Firefox 3.5和Firefox 3.6之間的變化)。實際上,它似乎將URL視爲一系列無符號整數(小端,必要時用零填充),並將它們添加到變量a,bc(前後數字爲a,第二個和第五個爲b ,第三和第六到c)。然後將這三個變量合併到函數hashmix()中。

ab初始值是0x9e3779b9,用於c值是稍微更復雜 - 它在作爲參數。所有呼叫者都使用此參數的默認值,但是這是0(請參閱nsDiskCache.h)。

我想http://burtleburtle.net/bob/hash/evahash.html可能會提供有關所用算法的更多信息。