Windows dan Linux memiliki akhiran baris yang berbeda, \r\n dan \n . Jadi saat file dibaca, isi file berbeda.
Coba unggah file Teks tanpa baris baru atau file Biner. Periksa juga perbedaan dalam byte yang dibaca. Itu harus sama dengan jumlah baris baru di file berikutnya.
Ok saya menemukan jawaban untuk pertanyaan saya, saya masih tidak tahu mengapa ada dua hash berbeda yang dibuat untuk kode yang sama di windows dan 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
Apa yang saya coba di sini adalah saya mengganti kode saya di atas dengan kode berikut
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newname);
"Stored in: " . "upload/" . $_FILES["file"]["name"];
$image = "upload/" . $newname;
$sign = md5_file($image);// Changed here
Dari sini saya pikir nilai Hash mungkin sama ketika dihasilkan oleh md5()
tetapi jika fungsi ini menerima file sebagai input maka nilai hash dihitung secara berbeda, saya tidak tahu apakah ini adalah masalah sisi PHP atau benar-benar masalah tingkat OS tetapi jika saya terus menggunakan md5_file()
untuk menghasilkan hash file saya tidak mendapatkan hash yang berbeda.