文件的MD5哈希表示什么?

3

我知道文件的MD5哈希值就像是用来确认完整性和真实性的数字指纹。有许多工具可以获取文件的MD5哈希值,但这个哈希值基于什么呢?文件大小?文件低级二进制代码?还是代码本身?


被标记为重复,简而言之,这只是文件的二进制内容。 - Danikov
2个回答

2
MD5是一种所谓的加密哈希函数。
基本上,这意味着您可以将任何比特串作为函数的输入,并且您将获得一个固定大小的比特串(在MD5的情况下为128位)作为输出。输出通常称为“摘要”。
摘要仅取决于输入,而与其他任何因素无关。因此,它本身可以用作完整性证明,但不能用作真实性验证,如果底层哈希函数具有必要的属性(在这种情况下为collision-resistance)。这意味着对于两个不同的输出,摘要本身也应该不同。问题在于摘要的大小是固定的,这反过来意味着随着足够数量的消息,总是可以找到碰撞(即,产生相同输出的两个不同输入)。
还应注意的是,现在没有理由使用MD5,因为发现了弱点(即后缀碰撞攻击)。而且,在现代硬件上使用SHA-256/512通常比MD5更快。
简而言之:加密哈希函数(以及MD5)的输出取决于输入比特串。
更新:根据您对另一个答案的评论,您正在寻找这个链接:https://en.wikipedia.org/wiki/MD5#Algorithm

0

您可以在此处阅读相关信息: https://en.wikipedia.org/wiki/Md5sum

通常,该算法会对文件进行运行,并输出校验和。这意味着,如果有人更改了文件中的一个位,校验和将会发生变化。因此,这是一种验证您所查看的文件是否为您认为的文件,并降低某人在其中放置恶意代码的可能性的方法。


谢谢回答,但那篇文章并没有回答我的问题。我的问题是MD5Sum到底是如何“处理”才能输出它的结果。如果我加密一个字符串,输入是字符串,输出是加密后的结果。但如果输入是一个文件,MD5Sum需要什么作为输入来进行加密呢? - ProtectedVoid
将文件作为一长串字节返回。 - yossico
输入:文件,输出:哈希字符串。 - yossico

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接