好吧,我有两个文件。它们完全相同。
第一个文件是:
http://iadsonline.com/servconfig.php
第二个文件是:
http://xzerox.info/servconfig.php
然而,当我使用md5_file()来获取他们的MD5时,他们会返回两个不同的MD5。
第一个返回cc7819055cde3194bb3b136bad5cf58d
,这是不正确的,第二个返回96a0cec80eb773687ca28840ecc67ca1
,这是正确的。
该文件只是
要验证,我已使用此代码:
$contents = file_get_contents($URL);
echo htmlentities($contents);
他们都返回
那为什么它会以不同的方式对它们进行扫描呢?
答案 0 :(得分:7)
第二个以换行符结束,第一个不换行。
答案 1 :(得分:3)
尝试使用curl
,我看到第一个是
没有后面的换行符,第二个是
带强>后面的新行。所以他们当然会以不同的方式散列。事实上,即使在命令行(bash提示符):
$ md5 sc.dat
MD5 (sc.dat) = cc7819055cde3194bb3b136bad5cf58d
$ md5 zz.dat
MD5 (zz.dat) = 96a0cec80eb773687ca28840ecc67ca1
答案 2 :(得分:0)
你能在这两个文件中都有空格吗?在文本编辑器中打开它们,显示所有字符。
或者,运行类似这样的东西
echo str_replace(array("\n", "\t", "\r"), '[I AM HIDING!]', file_get_contents($URL));
如果您看到 [我正在躲!] ,您将知道该怎么做:)
答案 3 :(得分:0)
这也发生在我身上。我为存储和检索散列字符串的所有文件设置了相同的编码(utf-8没有BOM):)现在md5()给出了相同的结果:)