我希望在下载后保证文件的完整性。我将文件的MD5哈希值存储在数据库中,并将该哈希值与下载后的文件进行比较。但是,每次在下载后对文件进行哈希运算时,我总是得到不同的MD5结果。我猜想被哈希处理的字节数组可能包含了一些元数据,例如上次修改时间,这可能会影响哈希值。如果有人做过类似的操作,请给些建议,谢谢。
我希望在下载后保证文件的完整性。我将文件的MD5哈希值存储在数据库中,并将该哈希值与下载后的文件进行比较。但是,每次在下载后对文件进行哈希运算时,我总是得到不同的MD5结果。我猜想被哈希处理的字节数组可能包含了一些元数据,例如上次修改时间,这可能会影响哈希值。如果有人做过类似的操作,请给些建议,谢谢。
一种简单的方法是运行两个不同下载版本之间的差异(我假设是二进制文件,但也许不是),这应该能够快速定位问题。
请确保您实际上是在文件的字节上计算MD5,而不是文件名或其他字符串。
如果我没记错的话,MD5哈希只适用于实际数据而不是时间戳和其他元数据。也许你正在使用FTP传输文本文件,在这种情况下,FTP客户端可能会重写换行符以适应你的系统,然后哈希值就会不同。
如果您正在使用FTP下载,问题可能是:
选择了二进制下载选项而非ASCII(或反之亦然)。
在不同平台之间传输,例如从Windows到Unix,其中行尾处理方式不同。