为什么相同的输入返回两个不同的 MD5 哈希值?
好吧,我有两个文件。它们是完全相同的。
第一个文件是: http://iadsonline.com/servconfig.php
第二个文件是: http://xzerox.info/servconfig.php
但是,当我使用 md5_file() 获取它们的 MD5 时,它们返回两个不同的 MD5。
第一个返回 cc7819055cde3194bb3b136bad5cf58d
,这是不正确的,第二个返回 96a0cec80eb773687ca28840ecc67ca1
,这是正确的。
该文件只是一个
为了验证,我使用了以下代码:
$contents = file_get_contents($URL);
echo htmlentities($contents);
并且它们都返回
那么为什么它对它们进行不同的哈希处理呢?
Alright, I have two files. They are the EXACT SAME.
The first file is:http://iadsonline.com/servconfig.php
And the second file is:http://xzerox.info/servconfig.php
However, when I use md5_file() to get their MD5, They return two different MD5's.
The first returns cc7819055cde3194bb3b136bad5cf58d
, which is incorrect, and the second returns 96a0cec80eb773687ca28840ecc67ca1
, which is correct.
The file is simply an
To verify, I've used this code:
$contents = file_get_contents($URL);
echo htmlentities($contents);
And they both return
So why is it hashing them differently?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
第二个以换行符结尾,第一个则不然。
The second one ends in a newline, the first does not.
尝试使用
后面没有换行符,第二个是
curl
,我看到第一个是& nbsp;
后面有换行符。所以他们当然会进行不同的哈希处理。事实上,即使在命令行(bash 提示符)下:Trying with
without a newline after it, the second one is
with a newline after it. So of course they'll hash differently. And indeed, even at the command line (bash prompt):
curl
, I see the first one is这些文件中是否有空格?在文本编辑器中打开它们并显示所有字符。
或者,运行类似的命令
如果您看到[I AM HIDING!],您就会知道该怎么做:)
Could you have whitespace in either of those files? Open them up in a text editor and show all characters.
Alternatively, run something like this
If you see [I AM HIDING!], you will know what to do :)
这也发生在我身上。我为存储和检索散列字符串的所有文件设置相同的编码(没有 BOM 的 utf-8):) 现在 md5() 给出相同的结果:)
this also happened with me. I set the same encoding (utf-8 without BOM) to all files that store and retrieve hashed strings :) now md5() gives the same results :)