Christian Seiler: Erkennen von Änderungen an Dateien

Beitrag lesen

Hallo,

c) Das Dateimodifikationsdatum ist in meinen Augen ein sehr schlechtes Kriterium, weil es nur eine informative Angabe ist, die das Betriebsystem liefert, man sich auf sie jedoch bei kritischen Dingen NICHT darauf verlassen sollte und - wie Du selbst bemerktest - nur sekundengenau ist.

Die grobe Granularitätr würde mich auch abschrecken.
Aber wenn man sich auf das Betriebssystem nicht verlassen kann, worauf dann?

Wie gesagt: Das Modifikationsdatum ist eine rein informative Größe. Es gibt wenige Fälle, in denen es sinnvoll ist, sich darauf zu verlassen. Um Änderungen an Dateien zu erkennen ist es jedoch in der Regel (!) ungeeignet.

Wenn Du das Modifikationsdatum einsetzen willst, solltest Du erstmal nachweisen, dass ein geändertes Modifikationsdatum unproblematisch für den gegebenen Fall ist, ansonsten die Finger von lassen. Dies ist zum Beispiel bei »make« der Fall - wenn etwas nicht klappt, dann sieht man's ja sofort und kann ein »make clean« drüberlaufen lassen, bevor man nochmal anfängt.

Eine viel sinnvollere Methode ist, mit Checksummen des Inhalts der Datei zu arbeiten (wenn sie sowieso komplett ausgelesen wird - warum nicht?).

Das ist eine gute Idee.
Wie sicher kann man sein, dass die bei größeren Dateien mit unterschiedlichem Inhalt auch noch unterschiedlich sind?

Bei MD5? Extrem sicher. Wie gesagt: Das hier ist keine kryptographische Anwendung, hier hat ein Angreifer nichts davon, wenn die Hashes gleich wären, und die bisher einzigen Kollisionen bei MD5 wurden explizit konstruiert, die sind nicht zufällig aufgetreten. Insofern ist ein MD5-Hash eine extrem gute Möglichkeit, Änderungen an Dateien zu erkennnen, wenn man davon ausgehen kann, dass niemand ein Interesse hat, diesen Mechanismus auszutricksen (was hier der Fall ist).

Viele Grüße,
Christian