我正在实现一个处理 udp 数据包的网络服务器。我想避免重放攻击,攻击者可以复制 udp 数据包,并在稍后重放它们。我玩弄我可以散列数据包并将这个值存储在散列表中的想法。然后,我可以在每次收到数据包时执行相同的过程,然后在哈希表中查找它。如果它已经存在,那么我们拒绝该数据包,但是如果我们从未见过它(该条目不存在),我们将其存储以供将来使用。
现在,什么哈希算法适合这个?我需要哈希表以外的东西吗?由于收到了很多 udp 数据包,我希望它在 O(1) 中工作!!!!!!;-), 这可能吗?
显然,我“记住”哈希的时间越长,我需要分配的存储(状态)就越多,哈希表能否随时间动态增长和收缩?
我可能离这里很远,我可能根本不需要哈希表!我对想法持开放态度!