我正在寻找一种特殊的哈希函数。假设我有一个大字符串列表,如果我按照它们的哈希值排序,它们应该是准随机的。
最重要的是:它必须非常快速。我已经尝试过md5和sha1,但它们使用了太多的CPU资源。
碰撞不是问题。
我正在使用JavaScript,因此实现不应该太复杂。
最重要的是:它必须非常快速。我已经尝试过md5和sha1,但它们使用了太多的CPU资源。
碰撞不是问题。
我正在使用JavaScript,因此实现不应该太复杂。
如果速度至关重要,您可以实现一个简单的临时哈希,例如取字符串的第一个和最后一个字母,并按照最后一个字母然后是第一个字母的顺序对其进行排序。结果看起来像是“准随机”的,而且速度很快。例如,按照这种方式排序的我的答案的一部分会像这样:
ca ad-hoc
el like
es simple
gt taking
hh hash
nc can
ti implement
uy you
Hsieh, Murmur, Bob Jenkin's 这些名字浮现在我的脑海中。
一个有关哈希函数的不错页面,其中包含一些质量测试和一个简单的 S-box 哈希函数。