sha1sum 函数如何为您提供唯一的哈希值?

sha1sum 函数如何为您提供唯一的哈希值?

我读到使用该sha1sum命令将运行 SHA-1 算法并给出“唯一”结果,但这怎么可能呢?

sha1sum为您提供 40 个字符的哈希值,如下所示:

e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e

它长度为 40 个字符,并且包含十六进制字符,因此哈希最多可以有 16 40种组合。

这意味着,对于任意两个随机文件,他们的哈希和完全相同的可能性很小,对吗?

答案1

与任何哈希一样,SHA-1 哈希不是唯一的;实际上已发现碰撞(更重要的是,精心制作)。

哈希函数的理想特性是很难构造两个产生相同哈希值的文件,而不是生成的哈希值是唯一的(正如您提到的,SHA-1 和有 160 位,因此只有 2160 个不同的哈希值) );困难意味着你无法比暴力搜索更快地找到碰撞。如果您选择一个文件,则另一个随机选择的文件有分之一的机会具有相同的哈希值。 SHA-1 是自2005年以来被认为不安全;由于生日攻击,您会看到那里给出的几率为二分之一 80 (几率是在一个大干草堆中找到两个冲突文件的几率,而不是找到特定目标的冲突文件的几率)。

相关内容