哈希 - 故意碰撞

时间:2016-09-18 13:51:10

标签: function hash collision

有没有办法设计哈希,以便键的某些子集有目的地映射到相同的值(冲突)?

例如,如果我想要将64位int A的所有(popcount> = 4)子集映射到X,并将B映射到Y等同样的子集

我认为如果由于碰撞我只有足够的钥匙,我可以节省一些内存。

1 个答案:

答案 0 :(得分:0)

使用模数运算符,并将64位值除以hashKeys集的大小,如下所示:

hashKey = _64BitValue mod popcount

我不知道你使用的语言是什么,但许多现代语言使用%作为模数运算符,有些使用" mod"。

例如,在java中它看起来像:

long hashKey = _64BitValue % popcount;

这将在您的密钥上均匀分配随机的64位值。