Windows a Linux mají různé konce řádků, \r\n a \n . Takže při čtení souboru je obsah souborů jiný.
Zkuste nahrát textový soubor bez nového řádku nebo binární soubor. Zkontrolujte také rozdíl v přečtených bytech. Měl by se rovnat počtu nových řádků v dalším souboru.
Dobře, našel jsem odpověď na svou otázku, stále nevím, proč byly pro stejný kód ve Windows a Linuxu vygenerovány dva různé hashe
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
To, co jsem zde zkusil, bylo, že jsem svůj výše uvedený kód nahradil následujícím kódem
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newname);
"Stored in: " . "upload/" . $_FILES["file"]["name"];
$image = "upload/" . $newname;
$sign = md5_file($image);// Changed here
Z toho si myslím, že hodnoty hash mohou být stejné, když jsou generovány md5()
ale pokud tato funkce přijímá soubor jako vstup, pak se hodnoty hash počítají jinak, nevím, zda se jedná o problém na straně PHP nebo skutečně problém na úrovni OS, ale pokud budu pokračovat v používání md5_file()
pro generování hash souboru i dont získat jiný hash.