【发布时间】:2021-01-23 21:35:41
【问题描述】:
如果在调整大小或创建表的过程中将哈希表种子设置为随机数,这会阻止对此类哈希表的 DDoS 攻击,还是知道哈希算法,攻击者仍然可以轻松绕过种子?如果算法使用 Pearson 散列函数和随机生成的表,攻击者不知道会怎样?这样的表哈希还需要种子还是足够安全?
上下文:我想为我的玩具 Web 服务器的键值数据库使用磁盘哈希表,其中键可能取决于用户输入。
【问题讨论】:
-
请澄清哈希表“种子”的含义。一般来说,哈希表没有种子,尽管一些特定的哈希函数确实有一些他们称之为种子的东西。无论如何,哈希函数的其余部分对于确定它是否能够充分抵抗哈希泛洪攻击也是至关重要的。
-
通常大多数哈希函数都有种子,就像随机数生成器一样。事实上,您可以将任何散列函数变成随机数生成器。如果您使用要散列的值作为种子,随机数生成器也可以变成散列函数。哈希表种子是指在初始化或调整大小期间选择的种子值。 IE。可以尝试几种种子,选择碰撞较少的种子,以防攻击者探测表。
-
siphash 是专门为此设计的。
标签: hash hashmap hashtable hashset hashcode