Für praktische Zwecke kann der erstellte Hash passend zufällig sein, aber theoretisch besteht immer eine Wahrscheinlichkeit für eine Kollision aufgrund des Pigeonhole-Prinzips. Unterschiedliche Hashes bedeuten sicherlich, dass die Dateien unterschiedlich sind, aber wenn zwei Dateien den gleichen Hash haben, bedeutet das nicht unbedingt, dass die Dateien identisch sind.
Eine Hash-Funktion für diesen Zweck zu verwenden - unabhhängig davon, ob Sicherheit ein Anliegen ist oder nicht - sollte daher immer nur der erste Schritt einer Überprüfung sein, insbesondere wenn bekannt ist, dass der Hash-Algorithmus leicht Kollisionen erzeugen kann. Um zuverlässig herauszufinden, ob zwei Dateien mit dem gleichen Hash unterschiedlich sind, müssten Sie diese Dateien Byte für Byte vergleichen.
2 Stimmen
Ich benutze es derzeit selbst in einer meiner Anwendungen und so weit ich weiß, ist es gut genug, um Dateien eindeutig zu identifizieren.
2 Stimmen
Du wirst wahrscheinlich diese Frage finden: stackoverflow.com/questions/862346/… nützlich.
0 Stimmen
Wie viele Dateien müssen identifiziert werden? Es gibt 128 Bits aus, so dass es in Ordnung ist, wenn Sie versuchen, nur wenige tausend Dateien zu identifizieren. Aber wenn Sie versuchen, deutlich mehr als das zu identifizieren, könnten Sie auf Kollisionen/das Geburtstagsparadoxon stoßen.
0 Stimmen
Sie werden Bilddateien sein, jpg's, png's und gif's. Und ja, ich glaube, das Limit wird bei ein paar tausend liegen... Aber wie viele Dateien denken Sie ungefähr, werden mir Schwierigkeiten bereiten?
0 Stimmen
Verwandt: stackoverflow.com/questions/14973197/…
0 Stimmen
@Marcin: Sie werden nicht auf das Geburtstagsparadoxon stoßen, es sei denn, Sie haben Quintillien von Dateien. Du hast es nicht.
0 Stimmen
Nur für den Fall, dass Sie versuchen, doppelte Fotos zu finden, ist es besser, eine speziell für diesen Zweck entwickelte Software zu verwenden, anstatt Datei-Hashes zu vergleichen. Fotos, die genau gleich aussehen oder sehr ähnlich sind, können je nach Unterschieden in den Metadaten des Fotos (wie Auflösung, EXIF-Daten usw.) unterschiedliche Datei-Hashes haben.