【问题标题】:What does a file MD5 Hash represent? [duplicate]文件 MD5 Hash 代表什么? [复制]
【发布时间】:2016-02-20 03:08:21
【问题描述】:

我知道文件的 MD5 哈希就像是用于确认完整性和真实性的数字指纹。有许多实用程序可以获取文件的 MD5 哈希,但该哈希基于什么?文件大小?归档低级二进制文件?代码?

【问题讨论】:

  • 标记为重复,TLDR 是它只是文件的二进制内容。

标签: file hash cryptography md5


【解决方案1】:

MD5 是所谓的加密哈希函数。

这基本上意味着您可以提供任何位串作为函数的输入,并且您将得到一个固定大小的位串(在 MD5 的情况下为 128 位)作为输出。输出通常称为“摘要”。

摘要仅取决于输入,不依赖于其他任何内容。因此,它本身可以用作完整性证明,但不能用作真实性,如果底层哈希函数具有必要的属性(在本例中为 collision-resistance)。这意味着对于两个不同的输出,摘要本身也应该不同。问题在于摘要的大小是固定的,这反过来意味着,如果有足够数量的消息,总是有可能找到冲突(即,两个不同的输入产生相同的输出)。

还应注意,现在没有理由使用 MD5,因为已经发现了弱点(即修复后冲突攻击)。此外,在现代硬件上使用 SHA-256/512 通常比 MD5 更快。

简而言之:加密哈希函数(以及 MD5)的输出取决于输入位串。

更新:根据您对其他答案的评论,您正在寻找这个:https://en.wikipedia.org/wiki/MD5#Algorithm

【讨论】:

    【解决方案2】:

    你可以在这里阅读: https://en.wikipedia.org/wiki/Md5sum

    一般来说,算法在文件上运行,它的输出是校验和,这意味着如果有人在文件中更改了一点,校验和就会改变。所以这是一种验证您正在查看的文件是否是您认为您正在查看的文件并降低有人将 melicius 代码放入其中的可能性的方法

    【讨论】:

    • 感谢您的回答,但该帖子没有回答我的问题。我的问题是 MD5Sum 真正“处理”了什么来输出它的功能。如果我加密一个字符串,输入是字符串,输出是加密的结果。但是如果输入的是一个文件,那么 md5sum 拿什么作为输入来加密呢?
    • 文件 - 作为长字节集
    • 因此:输入:文件,输出:哈希字符串
    猜你喜欢
    • 2014-04-16
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    相关资源
    最近更新 更多