我正在使用Apache Commons NET和他们的FTPClient。
现在我的情况是:我在服务器上有一个文件,并且在本地有相同层次结构中的相同文件。在服务器上,我使用 PHP 的md5_file()生成文件的 MD5 校验和。在我的机器上,我正在使用 Apache Commons Digest Utils md5hex()生成 MD5 校验和。
那些 MD5 哈希实际上总是匹配的——除了某些文件。
其中一个文件是当前的 jQuery-Library。其中另一个文件是 .ttf 字体文件,另一个是常规 PHP 文件(来自CodeIgniter的 system/libraries/Migration.php )。
现在令人惊奇的部分:如果我看到那些 MD5 校验和不一样,我将本地文件上传到服务器(或者我将 FTP 文件下载到我的计算机,取决于哪个更新(时间戳))。但无论如何,在上传或下载之后,MD5 校验和仍然不一样——来自完全相同的文件。为什么?
正如我所想,时间戳可能是 md5 数据的一部分,但这实际上是不可能的,因为那样所有其他文件也会失败。
感谢您的帮助!