为什么相同的输入返回两个不同的 MD5 哈希值?

发布于 2024-08-31 12:20:34 字数 560 浏览 4 评论 0原文

好吧,我有两个文件。它们是完全相同的。

第一个文件是: 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一向肩并 2024-09-07 12:20:34

第二个以换行符结尾,第一个则不然。

The second one ends in a newline, the first does not.

酒与心事 2024-09-07 12:20:34

尝试使用 curl,我看到第一个是   后面没有换行符,第二个是 & nbsp; 后面有换行符。所以他们当然会进行不同的哈希处理。事实上,即使在命令行(bash 提示符)下:

$ md5 sc.dat 
MD5 (sc.dat) = cc7819055cde3194bb3b136bad5cf58d
$ md5 zz.dat
MD5 (zz.dat) = 96a0cec80eb773687ca28840ecc67ca1

Trying with curl, I see the first one is   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):

$ md5 sc.dat 
MD5 (sc.dat) = cc7819055cde3194bb3b136bad5cf58d
$ md5 zz.dat
MD5 (zz.dat) = 96a0cec80eb773687ca28840ecc67ca1
错爱 2024-09-07 12:20:34

这些文件中是否有空格?在文本编辑器中打开它们并显示所有字符

或者,运行类似的命令

echo str_replace(array("\n", "\t", "\r"), '[I AM HIDING!]', file_get_contents($URL));

如果您看到[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

echo str_replace(array("\n", "\t", "\r"), '[I AM HIDING!]', file_get_contents($URL));

If you see [I AM HIDING!], you will know what to do :)

夏末染殇 2024-09-07 12:20:34

这也发生在我身上。我为存储和检索散列字符串的所有文件设置相同的编码(没有 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 :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文