gpt4 book ai didi

hash - 两个不同的字符串可以生成相同的MD5哈希码吗?

转载 作者:行者123 更新时间:2023-12-02 15:03:36 25 4
gpt4 key购买 nike

我们为每个二进制 Assets 生成一个 MD5 哈希值。这用于检查某个二进制 Assets 是否已在我们的应用程序中。但是两个不同的二进制 Assets 是否有可能生成相同的 MD5 哈希值。那么两个不同的字符串有可能生成相同的 MD5 哈希值吗?

最佳答案

对于一组甚至数十亿的 Assets ,随机冲突的可能性小到可以忽略不计——您无需担心。考虑到birthday paradox ,给定一组 2^64(或 18,446,744,073,709,551,616)个 Assets ,该组中单个 MD5 冲突的概率为 50%。按照这种规模,您可能会在存储容量方面击败 Google。

但是,由于 MD5 哈希函数已被破坏(它容易受到 collision attack 的攻击),任何坚定的攻击者都可以在几秒钟的 CPU 能力内产生 2 个冲突 Assets 。因此,如果您想使用 MD5,请确保此类攻击者不会损害您应用程序的安全!

此外,请考虑如果攻击者可能与数据库中的现有 Assets 发生冲突所产生的后果。虽然没有针对 MD5 的已知攻击 ( preimage attacks )(截至 2011 年),但通过扩展当前对碰撞攻击的研究,这可能成为可能。

如果这些结果成为问题,我建议查看 SHA-2 系列哈希函数(SHA-256、SHA-384 和 SHA-512)。缺点是速度稍慢并且哈希输出较长。

关于hash - 两个不同的字符串可以生成相同的MD5哈希码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1756004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com