我试图保证下载后文件的完整性。我将文件的 MD5 存储在数据库中,并在下载后将该 MD5 与文件进行比较。但是,当我在下载文件后对文件进行哈希处理时,我总是得到不同的 MD5 结果。我想知道正在散列的字节数组是否包含上次修改的元数据并且正在丢弃散列。如果其他人以前这样做过,您的帮助将不胜感激。
AutomaticPixel
问问题
4065 次
6 回答
2
一种简单的查找方法:针对两个不同的下载运行差异(我假设是二进制但可能不是)。这应该可以快速查明问题。
于 2008-11-14T01:21:49.893 回答
0
如果我在这里没有完全错,那么 md5 哈希仅适用于实际数据,而不是时间戳和其他元数据。也许您正在使用 ftp 传输文本文件,在这种情况下,ftpclient 可能会重写换行符以适合您的系统,然后散列将不同
于 2008-11-13T21:51:52.250 回答
0
如果您使用 FTP 下载,问题可能是:
二进制下载选项而不是 ASCII(反之亦然)。
跨平台传输,例如 Windows 到 Unix,其中 EOL 的处理方式不同。
于 2008-11-13T21:53:31.890 回答
0
您可以仅通过对文件的特定部分进行散列来测试您的理论...比如说,中间的 50%...如果这不同,那么您知道它不仅仅是时间戳或其他东西...也就是说,您确实需要给我们更多信息以获得更好的答案...
于 2008-11-13T21:57:04.720 回答
0
确保您实际上是根据文件的字节计算 MD5,而不是文件名或其他字符串。
于 2008-11-19T23:59:29.477 回答