从稀疏密钥空间映射到密集密钥空间

时间:2011-01-12 14:26:00

标签: algorithm

我有一个事件列表,其中包含用于标识浏览器的UUID。鉴于这个稀疏的密钥空间,我想映射到密集的密钥空间。

除了Bloom Filters,我还有其他选择吗?

如果我可以有一些映射到64位值的东西,那将是完美的,特别是如果它是算法而不是查找表。

2 个答案:

答案 0 :(得分:1)

如果事件列表是常量且不是动态的,则可以使用Minimal Perfect Hashing函数。

答案 1 :(得分:1)

要保证零冲突,请使用任何标准字典/符号表算法。这就是他们的所作所为。

对于最小冲突,可以使用各种哈希函数。 Bob Jenkins的lookup3.c非常受欢迎。您必须问自己的一个问题是,您是否会受到恶意选择的UUID的影响。如果是这样,您需要更好的哈希函数和安全的随机盐。 (如果你可以忍受速度,那么关键的HMAC就是完美的方法。)