php – 在Windows,linux和Mac上为同一图像创建的不同哈希值

前端之家收集整理的这篇文章主要介绍了php – 在Windows,linux和Mac上为同一图像创建的不同哈希值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用以下代码创建哈希值,现在发生什么是当我在 Windows本地Xampp服务器上测试哈希值时,我获取Linux上运行的相同代码不同的哈希值.
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $newname);
    "Stored in: " . "upload/" . $_FILES["file"]["name"];
    $image = "upload/" . $newname;
    $sign = md5(file_get_contents($image));

现在我不知道为什么会发生这种情况.对于我刚刚粘贴的相同的代码.

编辑:再次打开问题我找到的解决方案只适用于Linux,这意味着linux和windows现在给我相同的哈希,但是当从Mac(IOS)上传图像时,它仍然生成不同的哈希.

好的,我发现我的问题的答案,我仍然不知道为什么在Windows和Linux中为同一个代码生成了两个不同的哈希值
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $newname); 
    "Stored in: " . "upload/" . $_FILES["file"]["name"];
    $image = "upload/" . $newname;
    $sign = md5(file_get_contents($image));//This is code block that i was implmenting before solution

我在这里尝试的是我用以下代码替换了我上面的代码

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $newname);
        "Stored in: " . "upload/" . $_FILES["file"]["name"];
        $image = "upload/" . $newname;
        $sign = md5_file($image);// Changed here

从这个我认为哈希值可能是相同的,当由md5()生成,但如果此函数接受文件作为输入,哈希值的计算方式不同,我不知道这是一个PHP方面的问题或真正的操作系统级问题,但如果我继续使用md5_file()生成文件的哈希我不会得到不同的哈希.

原文链接:https://www.f2er.com/php/130880.html

猜你在找的PHP相关文章