寻找快速哈希函数

时间:2010-04-04 20:29:59

标签: hash random performance

我正在寻找一种特殊的哈希函数。假设我有一个很大的字符串列表,如果我按它们的哈希值排序它们应该是随机排序的。

最重要的一点是:它必须超级快。我已经尝试过md5和sha1,他们正在使用很多CPU功能。

冲突不是问题。

我正在使用javascript,所以它实现起来不应该太复杂。

4 个答案:

答案 0 :(得分:8)

看看Murmur哈希。它有一个很好的空间/碰撞权衡:

http://sites.google.com/site/murmurhash/

答案 1 :(得分:5)

看起来好像你想要哈希表中使用的散列函数,而不是用于检测重复或篡改的排序。

谷歌搜索将为您提供有关替代哈希函数的丰富信息。首先,远离加密签名哈希(如MD-5或SHA-1),它们解决了另一个问题。

您可以先阅读thisthisthis

答案 2 :(得分:3)

如果速度至关重要,您可以实现一个简单的ad-hoc哈希,例如取第一个和最后一个字母,然后按照最后一个字母顺序排列字符串。正如你所说,结果看起来像是“准随机”而且会很快。例如,我的答案的一部分就是这样排序:

ca ad-hoc
el like
es simple
gt taking
hh hash
nc can
ti implement
uy you

答案 3 :(得分:3)

我想到了{p> HsiehMurmurBob Jenkin's 一个nice page about hash functions,它有一些质量测试和一个简单的S-box哈希。