Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cryptography 两个相同的SHA1有多大可能有不同的内容?_Cryptography_Sha1 - Fatal编程技术网

Cryptography 两个相同的SHA1有多大可能有不同的内容?

Cryptography 两个相同的SHA1有多大可能有不同的内容?,cryptography,sha1,Cryptography,Sha1,可能重复: 假设我试图识别文件系统中的重复文件。可以安全地说,如果文件的SHA1校验和匹配,它们是相同的吗?如果它们匹配,我是否也应该查看它们的内容 我已经读到攻击的理论复杂性是2^51哈希函数调用。我还读到“对于输出160位的SHA1,生日攻击将复杂性降低到2^80。这应该可以安全使用30年或更长时间。”我是否应该再次检查以确保文件内容匹配?我不想确保我的分配在测试脚本下运行时不会产生错误的输出。两个给定消息具有相同哈希的可能性为1/2^160(因为SHA-1产生160位哈希) 即使文件系统

可能重复:

假设我试图识别文件系统中的重复文件。可以安全地说,如果文件的SHA1校验和匹配,它们是相同的吗?如果它们匹配,我是否也应该查看它们的内容


我已经读到攻击的理论复杂性是2^51哈希函数调用。我还读到“对于输出160位的SHA1,生日攻击将复杂性降低到2^80。这应该可以安全使用30年或更长时间。”我是否应该再次检查以确保文件内容匹配?我不想确保我的分配在测试脚本下运行时不会产生错误的输出。

两个给定消息具有相同哈希的可能性为1/2^160(因为SHA-1产生160位哈希)

即使文件系统中有一百万个条目,新条目共享相同哈希值的可能性仍然是十分之一


SHA-1已经被证明是相当好的,所以我认为你根本不需要担心碰撞。如果您需要更多,您可以添加一些质量属性,如时间戳、文件大小..

很可能它们是相同的,但如果是我,我会再次检查。为什么不包括一个时间戳呢?这样你就可以更加确定了。如果这是一个赋值,你可以合理地假设测试脚本是为了破坏最简单的程序而设计的。我会接受弗兰克的建议,在散列中添加额外的字节。如果这在作业范围内是不允许的,那么我想不用担心。这种可能性是荒谬的。10^42有时会让你误以为它是一个小数字,直到你把它用文字表达出来:1万亿=1万亿:在可观测的宇宙中估计存在多少原子?比那个数字的平方小一点。把你的头绕过去!我建议切换到SHA-2(特别是SHA-256)。即使是强大的攻击者也没有已知的方法生成SHA-2碰撞。对于可以忽略的SHA-1意外碰撞,故意/恶意碰撞是可能的。否则将失败。如果你有一百万个条目,那么有1000000^2-1次碰撞的机会,而不是1000000次-使碰撞的概率约为1/10^36,而不是10^42。为了解决生日悖论:即使有一百万条条目。。。不用担心…一百万不是很多。我只是指出你的数学错了。