我不是从漏洞利用的角度来谈论这个问题。假设 MD5 没有任何问题。
- 如果我有 2 个内容相同的相同格式的文件,那么两个文件的校验和将相同。但是,如果 2 个文件内容相同但格式不同,例如 pdf 和 doc,那么它们的校验和会不同吗?
- 如果 2 个文件具有相同的 Base64 编码值,它们是否具有相同的 MD5 校验和?
- 可以查找重复文件的应用程序。它们使用校验和值还是哪种技术?
答案1
如果两个文件内容相同但格式不同,如 pdf 和 doc。它们的校验和会有所不同吗?
格式为文件内容的一部分。使文件成为“PDF 文件”或“Word DOC 文件”的并不是一些辅助元数据——它实际上只是文件内部的字节。因此,由于不同的格式意味着不同的内容,因此它通常也意味着不同的哈希/摘要。
如果 2 个文件具有相同的 Base64 编码值,它们是否具有相同的 MD5 校验和?
Base64 不是压缩函数,而是无损 1:1 编码。因此,如果两个文件具有相同的 Base64 编码输出,则意味着它们具有相同的输入前编码也是如此。
简而言之,文件他们自己是相同的,所以它们会有相同的摘要。
可以查找重复文件的应用程序。它们使用校验和值还是哪种技术?
确切的实现各不相同,但通常是的,应用程序将消化整个文件并将生成的哈希值存储在内存中,然后它会寻找相同的哈希值。这显然比记住整个文件需要的内存少得多,也比一次比较每个可能的对所需的时间少得多。