Data structures 如果恶意黑客试图在哈希键上强制冲突,如何避免哈希中的冲突?

Data structures 如果恶意黑客试图在哈希键上强制冲突,如何避免哈希中的冲突?,data-structures,hash,Data Structures,Hash,最近在一次采访中,我被问到: 我们有自己的散列实现。假设我们在生成哈希代码的逻辑可见的地方开放了哈希实现的源代码。现在,黑客可以强制冲突,因为他可以发送具有不同值的相同密钥。可以采取什么措施来防止这种情况 我被困住了,我试着讨论以下内容 hash函数是通用hash函数,如(ax+b)mod p,其中a,b和p是隐藏在环境变量中的大素数,可以降低冲突概率。但他们认为,由于软件是开源的,我们无法隐藏它。(错误的编码模式,但出于论证的考虑,它仍然是有效的) 我甚至建议,如果我们看到太多冲突,哈希指向

最近在一次采访中,我被问到:

我们有自己的散列实现。假设我们在生成哈希代码的逻辑可见的地方开放了哈希实现的源代码。现在,黑客可以强制冲突,因为他可以发送具有不同值的相同密钥。可以采取什么措施来防止这种情况

我被困住了,我试着讨论以下内容

  • hash函数是通用hash函数,如
    (ax+b)mod p
    ,其中
    a
    b
    p
    是隐藏在环境变量中的大素数,可以降低冲突概率。但他们认为,由于软件是开源的,我们无法隐藏它。(错误的编码模式,但出于论证的考虑,它仍然是有效的)
  • 我甚至建议,如果我们看到太多冲突,哈希指向另一个哈希。但它只是在下一个散列中延迟多个冲突的可能性
  • 阻止来自黑客的DDos攻击

但没有一个答案能让面试官满意。现在,我很困惑,想知道。在
Hash
中处理强制冲突的其他方法有哪些?

他们不是只想听到salt吗?但是如果黑客知道salt的值,那么你仍然可以使冲突发生,对吗?我们不能使用随机salt,否则我们将无法检索哈希值。它们可能会促使您分析问题并理解其局限性。i、 e.如果算法已知且素数已知,则需要通过其他方式防止碰撞(例如,先发制人地检测碰撞尝试)。重要的不是你的答案,而是你分析碰撞的能力problem@EriksKlotins哦……好的。但我们如何能先发制人地检测碰撞企图呢?