Dateien nach kopieren vergleichen

markus2510

Mitglied
Hallo!

In meinem Programm kopiere ich Dateien. Nun möchte ich nach jedem Kopiervorgang sicherstellen daß die Datei fehlerfrei kopiert wurde. Ich dachte mir ich bilde von beiden einen Hashwert mit einem bestimmten Algorithmus (z.B. MessageDigest.getInstance("SHA")) und vergleiche diese Werte nach dem Kopieren.

Wenn die Werte gleich sind wurde der Kopiervorgang fehlerfrei durchgeführt.

Kann ich das so machen um das fehlerfreie Kopieren sicherzustellen? Welchen Algorithmus würdet ihr dafür empfehlen?

Auf dieselbe Art und Weise könnte man auch Duplikate von Dateien suchen oder?

lg, Markus
 

stg

Top Contributor
Kann ich das so machen um das fehlerfreie Kopieren sicherzustellen?

Nein. Das geht auch grundsätzlich nicht. Du kannst aber bei abweichenden Hashes darauf schließen, dass der Kopiervorgang nicht fehlerfrei war. Aber dennoch wird das oft so gemacht. Ob du da nun MD5 oder SHA-XY nimmst, ist eher von geringerer Bedeutung.

Auf dieselbe Art und Weise könnte man auch Duplikate von Dateien suchen oder?
Nur nach potentiellen Duplikaten. Um den Hash-Wert einer jeden Datei zu ermitteln, musst du diese aber ja komplett lesen und den Inhalt weiterverabeiten. Das wird sehr langsam. Zu allererst kann man bspw. die Größe der Dateien vergleichen. Nur die mit identischer Größe kommen in die engere Auswahl..
 

markus2510

Mitglied
ok dann schein ich da bei diesen ganzen hash algorithmen was grundsätzlich missverstanden zu haben. dachte wenn zwei dateien denselben hashwert aufweisen dann sind sie gleich. und daß aus diesem grund in zusammenhang mit downloads immer eine prüfsumme angegeben wird mit der man prüfen kann ob der download fehlerfrei war. und ich hatte das auch so verstanden daß man bei diesen algorithmen eben genau solche kollisionen vermeiden bzw. in höchstem maße unwahrscheinlich machen will, also daß dateien mit unterschiedlichem inhalt denselben hashwert ergeben.
 

stg

Top Contributor
Das ist auch praktisch ausreichend. Wenn beim Transfer etwa einzelne bits kippen ist es nahezu ausgeschlossen, dass du trotzdem den selben Hashwert erhälst (bei geeigneten Hash-Algorithmen jedenfalls). Das gilt aber eben nur nahezu. Wirklich zu 100% sicherstellen kann man einen zu 100% fehlerfreien Transfer schlichtweg nicht. Selbst wenn man bit für bit vergleicht, kann immer noch beim lesen was schiefgehen o.Ä....
Also, in der Praxis ist der Vergleich der Hash-Prüfsummen ausreichend. Das wird auch so gemacht, wie ich schon zuvor schrieb. Für noch mehr Sicherheit kann man auch sowohl MD5, als auch SHA-1 Hashes berechnen und vergleichen. Aber das grenzt schon fast an Paranoia (und könnte eher dazu dienen sicherzustellen, dass nicht jemand vorsätzlich eine falsche Datei unterzuschieben versucht.)

in höchstem maße unwahrscheinlich machen will, also daß dateien mit unterschiedlichem inhalt denselben hashwert ergeben.
Das ist auch richtig. Aber es geht schlichtweg nicht Kollisionen gänzlich zu vermeiden, niemals. Das ist die Natur von Hashwerten. Du hast eine unbegrenzte Anzahl möglicher Eingabewerte, aber nur eine begrenzte Anzahl an möglichen Hash-Werten. Irgendwann und irgendwo wird es immer knallen.
 

markus2510

Mitglied
Aber ich denk mir wenn nach dem Kopiervorgang die Dateigrösse und der Hash übereinstimmt ist die Wahrscheinlichkeit recht hoch daß alles gut gegangen ist. Ich vermute mal so werden es auch die Kopier- und Imaging-Programme machen um die Daten zu verifizieren oder?
 

stg

Top Contributor
Ja, die Wahrscheinlichkeit ist (nicht nur recht sondern sogar) sehr hoch.
Und ja, das ist gängige Praxis.

Im Grunde muss man sich nur der Problematik bei dem ganzen Thema bewusst sein.
 

markus2510

Mitglied
Ok dann sag ich danke für eure antworten und ich werd das dann so umsetzen (prüfen der dateigrösse und des hashwertes) um die kopierte datei zu prüfen.

lg, Markus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D in class-Dateien nach variablen suchen! Allgemeine Java-Themen 5
C 5000-6000 Dateien nach Textblocken suchen Allgemeine Java-Themen 22
G portierung einer DOS Anwendung mit dbase - Dateien nach JAVA Allgemeine Java-Themen 3
R Windows-XP-Suchfunktion: Nach Text in Java-Dateien suchen Allgemeine Java-Themen 9
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
G Dateien lesen Allgemeine Java-Themen 3
OnDemand Unterschiedliche jar Dateien zusammen führen Allgemeine Java-Themen 8
A Sicheres Löschen von Dateien Allgemeine Java-Themen 7
O git ignore für Intellji braucht es die .idea Dateien? Allgemeine Java-Themen 8
Master3000 Dateien zwischen verschiedenen Netzwerken senden Allgemeine Java-Themen 17
L Jar Dateien in Classpath laden ab JDK 9+ Allgemeine Java-Themen 11
d.lumpi JDA eclipse dateien versenden Allgemeine Java-Themen 4
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
O Wie kann ich in Apache POI (Excel Dateien schreiben) Datumszellen in Excel erzeugen Allgemeine Java-Themen 6
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
L Dateien richtig auslesen Allgemeine Java-Themen 6
L Eclipse Runnable Jar mit Dateien Allgemeine Java-Themen 8
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
MiMa Logging mit log4j2 in verschiedene Dateien? Allgemeine Java-Themen 22
I Klassen aus Jar-Dateien aus anderem Ordner laden Allgemeine Java-Themen 3
O jar und EXE Dateien, Pfade zur Laufzeit Allgemeine Java-Themen 1
W Dateien werden nicht gelöscht - warum? Allgemeine Java-Themen 12
B Dateien / Bilder von "webapp" Ordner bekommen? Allgemeine Java-Themen 1
P Erste Schritte Dateien löschen Allgemeine Java-Themen 4
H Erste Schritte Ausführbare Dateien lassen sich nicht starten Allgemeine Java-Themen 5
I Java als exe veröffentlichen inkl. kompletter Dateien Allgemeine Java-Themen 4
M Drucken von Dateien Allgemeine Java-Themen 10
J jar Dateien unter Windows 7 mit spezifischer jdk öffnen Allgemeine Java-Themen 2
I Laden von Informationen aus Dateien: Austauschbarkeit: 2 Dateien sinnvoll? Allgemeine Java-Themen 2
N Temporäre Dateien Allgemeine Java-Themen 3
Bluedaishi Druck Probleme mit PDF dateien Allgemeine Java-Themen 4
M Dateien schneller kopieren Allgemeine Java-Themen 1
Arif Input/Output Dateien im Jar-Programm speichern Allgemeine Java-Themen 12
D Collections.sort funktioniert nicht in exportierten .class Dateien Allgemeine Java-Themen 10
K Große JSON-Dateien schnell und effizient verarbeiten Allgemeine Java-Themen 16
J Programm zum Download von CSV-Dateien Allgemeine Java-Themen 4
V Eclipse .class Dateien Allgemeine Java-Themen 9
B Download von dateien Allgemeine Java-Themen 2
K Nicht alle class-Dateien im JRE? Allgemeine Java-Themen 2
MiMa Log4j in Dateien mit eigenem Namen schreiben Allgemeine Java-Themen 3
D Kopieren von Dateien aus einem Ordner in einen anderen Allgemeine Java-Themen 6
C Dateien in Jar aufrufen Allgemeine Java-Themen 14
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
JavaWolf165 Externe .jar-Dateien in .jar-Datei intigrieren Allgemeine Java-Themen 0
X Dateien für Benutzer Sperren Allgemeine Java-Themen 4
D Dateien aus den Internet herunterladen Allgemeine Java-Themen 6
L Methoden Dateien älter als 30 Tage? Allgemeine Java-Themen 11
J .exe Dateien werden nicht gestartet obwohl Pfad richtig Allgemeine Java-Themen 6
RalleYTN Classpath Native Dateien(DLL, SO, JNILIB) Allgemeine Java-Themen 2
J Java .jar Dateien zusammenführen Allgemeine Java-Themen 1
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
F Platzsparende Alternative zu .txt-Dateien Allgemeine Java-Themen 12
X Dateien von der Jar zum Ordner kopieren. Allgemeine Java-Themen 4
Ananaskirsche Input/Output Dateien im Ordner Allgemeine Java-Themen 8
A Input/Output Liste der Dateien in einem Ordner in einer Jar Datei erhalten Allgemeine Java-Themen 11
X Herunterladen von Dateien aus dem Internet Allgemeine Java-Themen 2
V Input/Output Sound Dateien aus Jar laden Allgemeine Java-Themen 18
M Dateien aus einem Verzeichnis auf einem Server auflisten Allgemeine Java-Themen 5
H PDFBox akzeptiert Dateien nicht Allgemeine Java-Themen 1
B Java - einlesen von Dateien und herausschneiden von XML Dokumenten Allgemeine Java-Themen 5
A Input/Output Spätes Schreiben von Dateien der JVM Allgemeine Java-Themen 3
M Zwei unterschiedliche JAR Dateien mit ANT erstellen Allgemeine Java-Themen 8
Thallius Dateien Zippen und wieder heraus lesen? Allgemeine Java-Themen 4
T Dateien zur Laufzeit in Java-Programm packen? Allgemeine Java-Themen 3
Maxim6394 Jar Dateien starten nicht Allgemeine Java-Themen 7
U Eclipse Java Programm beschädigt .tar.gz dateien beim Entpacken Allgemeine Java-Themen 7
GUI-Programmer Mp3 Dateien bearbeiten und speichern Allgemeine Java-Themen 3
S Exklusive Sperre auf Dateien: FileChannel, FileLock Allgemeine Java-Themen 0
Bluedaishi Dateien löschen die älter als das aktuelle Datum sind Allgemeine Java-Themen 9
OnDemand Dateien einlesen und vergleichen Allgemeine Java-Themen 1
T Ordner samt Dateien kopieren Allgemeine Java-Themen 11
R Importieren von Txt-Dateien in AbstractTableModel Allgemeine Java-Themen 0
C Dateien komprimieren und verschlüsseln Allgemeine Java-Themen 3
F Eclipse Eclipse kompiliert nicht mehr die aktuellen Dateien Allgemeine Java-Themen 2
R Java Dateien "verschlüsseln" Allgemeine Java-Themen 2
L Passwortgeschützte Dateien Allgemeine Java-Themen 6
A Datentypen Dateien umbenennen mit Dateiendungen - Dateiendungen ausgeben Allgemeine Java-Themen 2
L Reparieren beschädigter PDF Dateien Allgemeine Java-Themen 3
F Dateien ins Array lagern und Optionen zur Auswahl, Allgemeine Java-Themen 5
J XML Dateien vergleichen Allgemeine Java-Themen 9
B Umbenennen von Dateien Allgemeine Java-Themen 2
B Erste Schritte Plugin erkennen und Class Dateien anzeigen lassen Allgemeine Java-Themen 3
W Best Practice Dateien parsen Allgemeine Java-Themen 3
B Dateien verschwinden aus bin Ordner?! Allgemeine Java-Themen 5
B Dateien prüfen auf Gleichheit Allgemeine Java-Themen 5
M Java Dateien verschieben Allgemeine Java-Themen 2
R Wav-Dateien wiederholt abspielen Allgemeine Java-Themen 2
L Methoden Verarbeitung von Größen Dateien Allgemeine Java-Themen 9
B Alt-Griechisch Zeichen in Dateien Allgemeine Java-Themen 2
M JAR Dateien nur mit Compiler Level 1.6 ausführbar Allgemeine Java-Themen 8
E Zugriff auf Dateien im Filesystem überwachen Allgemeine Java-Themen 5
G .jar Dateien lassen sich nicht mehr öffnen Allgemeine Java-Themen 2
M Datentypen Jar-Dateien öffnen nicht mit Java Allgemeine Java-Themen 4
C Mit Java PDF Dateien bearbeiten. Allgemeine Java-Themen 2
B Input/Output .java-Dateien auslesen Allgemeine Java-Themen 17
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
E Vorschläge, effizientes Hashing von Dateien für vergleich Allgemeine Java-Themen 7
W Vergleich eines Datenträgers auf neue Dateien Allgemeine Java-Themen 14
C Java-Dateien in einheitlichen Zeichensatz umwandeln Allgemeine Java-Themen 10
E Dateien aus / im JAR Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben