Frage

Ich bin der Gestaltung einer Datei-Server-Anwendung, wo ich überprüfen möchten, ob eine Cache-Datei auf einem Client-Computer die letzte Version ist, die auf dem Server gehalten wird.

Ich verstehe nicht ganz vertrauen auf dem ‚geänderte Datum‘ -Attribut in dem Dateisystem, so dass ich das tatsächliche Bytes in der Datei vergleichen möge.

Ich denke, der schnellste Weg, dies zu tun (wie alle die Bytes senden über die Bahn einige Zeit in Anspruch nimmt), ist die Dateilänge und Hash-Bytes an den Server zu senden. Dann überprüft der Server zuerst die Dateilänge, und wenn sie übereinstimmen, es berechnet einen Hash für die Datei auf dem Server, und dann überprüft, ob es das gleiche ist, dass der Client berechnet.

Kann jemand mir sagen, was die, wie wahrscheinlich die Hash-Kollisionen sind, wenn die Dateigröße das gleiche ist? (Ich zur Zeit mit MD5 für seine Geschwindigkeit).

Kann ich davon ausgehen, wenn die Dateigröße das gleiche ist und der Hash ist die gleiche, dass der Inhalt das gleiche ist?

Danke!

War es hilfreich?

Lösung

Random Kollisionen in MD5 ist so unwahrscheinlich, dass seine Sicherheit grenzender Wahrscheinlichkeit sicher die Möglichkeit zu ignorieren.

Allerdings wurde MD5 gezeigt kryptographisch schwach sein, um ein bösartiger Gegner absichtlich Dateien dass collide schaffen könnte. Ein berühmtes Beispiel ist:

  

Am 30. Dezember 2008 wurde eine Gruppe von Forschern auf dem 25. Chaos Communication Congress bekannt gegeben, wie sie Kollisionen MD5 benutzt hatte eine Zwischenzertifizierungsstelle Zertifikat zu erstellen, die legitim zu sein schien, wenn sie über die MD5-Hash überprüft.

Quelle

Andere Tipps

Ich denke, das

scroll top