【发布时间】:2016-02-20 03:08:21
【问题描述】:
我知道文件的 MD5 哈希就像是用于确认完整性和真实性的数字指纹。有许多实用程序可以获取文件的 MD5 哈希,但该哈希基于什么?文件大小?归档低级二进制文件?代码?
【问题讨论】:
-
标记为重复,TLDR 是它只是文件的二进制内容。
标签: file hash cryptography md5
我知道文件的 MD5 哈希就像是用于确认完整性和真实性的数字指纹。有许多实用程序可以获取文件的 MD5 哈希,但该哈希基于什么?文件大小?归档低级二进制文件?代码?
【问题讨论】:
标签: file hash cryptography md5
MD5 是所谓的加密哈希函数。
这基本上意味着您可以提供任何位串作为函数的输入,并且您将得到一个固定大小的位串(在 MD5 的情况下为 128 位)作为输出。输出通常称为“摘要”。
摘要仅取决于输入,不依赖于其他任何内容。因此,它本身可以用作完整性证明,但不能用作真实性,如果底层哈希函数具有必要的属性(在本例中为 collision-resistance)。这意味着对于两个不同的输出,摘要本身也应该不同。问题在于摘要的大小是固定的,这反过来意味着,如果有足够数量的消息,总是有可能找到冲突(即,两个不同的输入产生相同的输出)。
还应注意,现在没有理由使用 MD5,因为已经发现了弱点(即修复后冲突攻击)。此外,在现代硬件上使用 SHA-256/512 通常比 MD5 更快。
简而言之:加密哈希函数(以及 MD5)的输出取决于输入位串。
更新:根据您对其他答案的评论,您正在寻找这个:https://en.wikipedia.org/wiki/MD5#Algorithm
【讨论】:
你可以在这里阅读: https://en.wikipedia.org/wiki/Md5sum
一般来说,算法在文件上运行,它的输出是校验和,这意味着如果有人在文件中更改了一点,校验和就会改变。所以这是一种验证您正在查看的文件是否是您认为您正在查看的文件并降低有人将 melicius 代码放入其中的可能性的方法
【讨论】: