我试图保证下载后文件的完整性.我将文件的MD5存储在数据库中,并在下载后将该MD5与文件进行比较.但是,当我在下载文件后对文件进行哈希处理时,我总是得到不同的MD5结果.我想知道正在被散列的字节数组是否包含像上次修改的元数据并且正在抛弃散列.如果其他人以前做过这件事,我们将非常感谢您的帮助.
MD5哈希值是根据文件内容计算的,不受文档元数据的影响.如果您从相同的内容开始,这是一个确定性的过程,总是会产生相同的结果(尽管有一些方法可以伪造MD5签名,因为碰撞).
你是如何为文件创建MD5哈希的?您是否尝试过使用其他工具重现问题?
如果有不同的MD5签名,那么您的文件会以某种方式不同.
以前的EOL字符建议或以ASCII模式传输二进制文件很可能是文件可以更改的原因.使用diff工具可以帮助确定文件的不同位置/方式.如果您的文件是二进制格式,请尝试使用二进制差异工具.