加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 14:09:50 所属栏目:PHP教程 来源:网络整理
导读:我正在使用以下代码创建哈希值,现在发生什么是当我在 Windows本地Xampp服务器上测试哈希值时,我获取在 Linux上运行的相同代码不同的哈希值. move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $newname); "Stored in: " . "upload/" . $_FILES["f
我正在使用以下代码创建哈希值,现在发生什么是当我在 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()生成文件的哈希我不会得到不同的哈希.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读