md5 prüfsummen von dateien - PHP

nauv

Grünschnabel
Hi,

hab hier ein klitzekleines Problem.
Und zwar folgendes:
Ich möchte via PHP Prüfsummem mit md5 für Dateien erzeugen.
Ich habe mithilfe einiger Programme die Prüfsummen zu Testzecken lokal auf meinem Rechner erzeugt.

Wenn ich aber mit php den Dateiinhalt auslese und die Prüfsumme erzeuge ist der Hashwert ein anderer.
Die Dateigrösse der Dateien unterscheidet sich auch von denen die auf dem Server liegen. Wohlgemerkt lokal habe ich sie nicht mehr verändert.
Da nur der Inhalt der Datei gehasht wird kann ich mir das nicht erklären. Vll hat hier jmd einen Rat?!

folgender Code sollte doch den selben Hash erzuegen, wie diese lustigen klickibunti Programme, oder sehe ich was falsch?
PHP:
<?php

//--------------------------------------------------

$MD5_FILE = "BLUB";
$H = fopen($MD5_FILE, "r");
$C = fread($H, filesize("BLUB"));
echo md5($C);

//--------------------------------------------------

?>

Danke schonmal im Vorraus!
Mfg
 
Zuletzt bearbeitet:
Versuch mal ob ein true als 2. Parameter bei md5() zum Erfolg fuehrt.
Ich hab das mal nutzen muessen als ich eine Hash-Funktion aus Java umsetzen musste um zum selben Ergebnis zu kommen.
 
reptiler hat gesagt.:
Versuch mal ob ein true als 2. Parameter bei md5() zum Erfolg fuehrt.
Ich hab das mal nutzen muessen als ich eine Hash-Funktion aus Java umsetzen musste um zum selben Ergebnis zu kommen.
Leider kein Erfolg.

Jetzt habe ich anstatt den Hash irgend nen binären Käse *g*

die md5 funktion braucht auch normalerweise in PHP nur ein Argument
 
Natuerlich braucht die nur einen Parameter, aber man kann optional einen 2. uebergeben.
Einfach mal in die Doku zu md5() schauen, da kann man sowas nachlesen.

Ich koennte mir vorstellen, dass beim Hashen einer Datei nicht nur der Inhalt sondern auch der Dateiname eine Rolle spielt.
Nachtrag: Der Dateiname scheint wohl doch egal zu sein.
 
Zuletzt bearbeitet:
reptiler hat gesagt.:
Natuerlich braucht die nur einen Parameter, aber man kann optional einen 2. uebergeben.
Einfach mal in die Doku zu md5() schauen, da kann man sowas nachlesen.

Ich koennte mir vorstellen, dass beim Hashen einer Datei nicht nur der Inhalt sondern auch der Dateiname eine Rolle spielt.

Datum, Dateiname o.ä spielen keine Rolle :)


Und den zweiten Optionalen Parameter gibts nicht.
Bin mir dessen sicher habe aber die doku nochmals durchgeklappert :)
War leider auch schon in diversen Foren auf Suche ohne Erfolg
 
Nun gut.
Habe die zu hashenden Dateien im Binärformat runtergeladen jetzt sind die Hashes identisch.
Allerdings mit der funktion "md5_file", welche ich eigentlich nicht verwenden möchte. :(

Jmd nen Rat?
 
nauv hat gesagt.:
Und den zweiten Optionalen Parameter gibts nicht.
Ach ja?
php.net hat gesagt.:
string md5 ( string str [, bool raw_output] )
Ich seh da ganz eindeuting einen optionalen Parameter.

Und bei mir funktioniert es auch wunderbar.
md5test.php
PHP:
<?php
$file=fopen("md5test.php","r");
$data=fread($file,filesize("md5test.php"));
fclose($file);
echo md5($data);
?>
Hash von md5sum: dee7dc70105e987f72533da5bb2c53e0
Hash von md5test.php: dee7dc70105e987f72533da5bb2c53e0

Die sehen mir ziemlich identisch aus.
 
Zurück