通用哈希函数系列只是为了防止敌人攻击吗?

2024-01-09

如果我的目的只是拥有一个好的哈希函数,将数据均匀地分布到所有存储桶中,那么我不需要想出一系列哈希函数,我只需使用一个好的哈希函数即可,对吗?

拥有一系列哈希函数的目的只是让敌人更难构建病态数据集,因为当我们随机选择哈希函数时,他/她不知道使用哪个哈希函数。我的理解对吗?

编辑: 由于有人试图以不清楚的方式关闭;这个问题是为了了解使用通用哈希函数系列的真正目的。


我可以用一个好的哈希函数来做,对吗?

正如您稍后在问题中指出的那样,知道您正在使用哪个哈希函数的“敌人”可以准备病理数据集。

此外,散列只是将数据存储到表存储桶中的第一步 - 如果您正在实施开放寻址/封闭散列,您还需要选择替代存储桶来在冲突后进行探测:线性和二次探测等简单方法通常可以提供足够的冲突避免,并且在数学上可能更简单,因此比重新散列更快,但它们不能保持下一个探测在负载因子上找到未使用的存储桶的概率。与另一个人重复good哈希函数(包括此类函数系列中的另一个函数)可以,因此如果这对您很重要,您可能更喜欢使用哈希函数系列。

还要注意的是,有时内存中的哈希表用于说明存储磁盘数据的偏移量/扇区,因此使用内存中的数据进行额外的重新哈希计算可能比更高的概率(线性/二次探测)等待磁盘 I/O 却发现另一个冲突。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通用哈希函数系列只是为了防止敌人攻击吗? 的相关文章

随机推荐