Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi SHA256 von großen Dateien (https://www.delphipraxis.net/160155-sha256-von-grossen-dateien.html)

Nachaz 29. Apr 2011 23:26

SHA256 von großen Dateien
 
Hallo liebe Delphi-Praxis-Gemeinde,

bevor ich es selber bastle:
hat jemand da draußen vielleicht schon einmal den SHA256 von großen Dateien ermittelt?

Mein Ziel ist es eine Klasse zu schaffen, die von einer großen Datei (>4GiB) den Hash-Wert in SHA256 ermittelt und dabei Progress-Events feuert (z.B. pro Chunk oder in einem anderen praktikablen Intervall).

Nach einer 30 Minütigen Google-Recherche hab' ich nicht funktionierende Download-Links und Klassen, die mit Strings hantieren satt und der Pseudocode auf Wiki sieht nicht ZU komplex aus.

Ich würde auch nur ungern dafür irgendwelche Komponenten installieren, da es leider bei Delphi immer noch einen heiden-Aufwand bedeutet, will man ein Projekt auf anderen Rechnern kompilierbar halten (wenn jemand schon mal in JAVA mit Maven und Artifactory/Archiva gearbeitet hat, weiß er, wie es funktionieren SOLLTE)

Gibt es da schon etwas (oder etwas, dass mir weiterhelfen würde) oder muss ich das selber schreiben?


Dank im Voraus & Gruß,

NZ


P.S.: Wenn ich dienliche Hinweise bekomme, werde ich die Gesamtlösung selbstverständlich die Lösung hier posten.

Aphton 29. Apr 2011 23:38

AW: SHA256 von großen Dateien
 
Muss es SHA256 sein?
Ich könnte dir nämlich eine Fertiglösung für MD5 bieten.
MD5 liefert letzendlich auch 16 Bytes, was ja 256 Bits sind, zurück!
Edit: Ups, das sind 128 Bits

himitsu 29. Apr 2011 23:49

AW: SHA256 von großen Dateien
 
hier könnte man mal reinsehn, ob's da was giebt
http://www.delphipraxis.net/50896-ei...n-gesucht.html
http://sourceforge.net/projects/tplockbox/
http://www.delphipraxis.net/9486-dateien-verschluesseln-aber-wie.html
http://www.delphipraxis.net/11892-pr...enerieren.html

oder man nimmt das DEC :angle2:

Nachaz 29. Apr 2011 23:57

AW: SHA256 von großen Dateien
 
MD5 ginge auch, SHA256 ist nur halt ein wenig moderner. (und natürlich um ein paar Faktoren langsamer :)

Vielleich noch zum Hintergrund der ganzen Geschichte:
Ich habe eine Sicherungs-Ordner (im Wesentlichen ~200 RAR-Archive) den ich immer manuell zwischen meinen Rechnern synchronisiere.

Jetzt nehme ich gerade einen neuen Proberaumrechner in Betrieb und der meldet mir CRC-Fehler bei ein paar der größeren Archive (kopiert via Microsoft Network/samba unter Windows-7).

Ich bastle gerade ein Programm, was einen Index des Sicherungsordners mit Filename, FileSize, LastChange und SHA256 erstellt (tsv-datei), um den Fehler besser eingrenzen zu können. Ziel ist, dass ich nur noch die Index-Datei vergleiche um Differenzen aufzudecken, anstatt immer die 300 Gib zu vergleichen (~5 Stunden mit 1GBit).

MD5 wäre für diese Zwecke natürlich ausreichend (die Fehlerate ist auch noch bei MD5 unrealistisch hoch). Prinzipiell wäre ich daher auch auch für einen MD5 dankbar.

Nachaz 30. Apr 2011 00:28

AW: SHA256 von großen Dateien
 
Danke@himitsu,

aber die o.g. Probleme gibt es dabei immer noch, ich will halt weder die Delphi[XE] Indy-Klassen verwenden (wg. > 2 GiB), noch DEC verwenden (Kompilierbarkeit+GibtsDasÜberhauptFürDelphiXE?)

Aphton 30. Apr 2011 00:34

AW: SHA256 von großen Dateien
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier, schau mal, ob es dir hilft.
Die Demo Datei berechnet den Hash der ihr übergebenen Datei - dh. versuch einfach mal irgendeine Datei auf diese zu droppen (damit öffnen)!

Weiters: Es werden die MD5 Funktionen, die von Windows in cryptdll.dll zur Verfügung gestellt werden, verwendet!
Du müsstest dann noch wegen Kompaktibilität nachguggen!

Nachaz 30. Apr 2011 00:36

AW: SHA256 von großen Dateien
 
Danke, mach ich morgen, muss jetzt leider weg!

Luckie 30. Apr 2011 07:57

AW: SHA256 von großen Dateien
 
@Aphton: Sehr schön. Gefällt mir. Ich habe mir erlaubt das Archiv auf meine Webseite hochzuladen: http://www.michael-puff.de/Programmi...mporte/Aphton/ für mich, damit ich es finde, wenn ich es mal brauche. Ich hoffe, du hast nichts dagegen.

Aphton 30. Apr 2011 09:05

AW: SHA256 von großen Dateien
 
Absolut nichts, ganz im Gegenteil sogar. Verschafft mir eine Ehre!

Nachaz 1. Mai 2011 08:47

AW: SHA256 von großen Dateien
 
Vielen Dank Euch, werde gleich mal probieren das zu integrieren.

Nachaz 1. Mai 2011 09:27

AW: SHA256 von großen Dateien
 
Liste der Anhänge anzeigen (Anzahl: 1)
Habe das Ergebnis,

@Luckie
Wäre Cool, wenn Du das hochladen könntest, habe nämlich keinen Webspace.

Ansonsten kann sich jeder gerne Melden.

Es braucht zum kompilieren JEDI VCL und eine Delphi-Version, die das TGridPanel unterstützt.

Danke nochmal an Aphton!

Sir Rufo 1. Mai 2011 10:07

AW: SHA256 von großen Dateien
 
Zitat:

Zitat von Nachaz (Beitrag 1098001)
@Luckie
Wäre Cool, wenn Du das hochladen könntest, habe nämlich keinen Webspace

Öh lies doch nochmal was Luckie da geschrieben hat
Zitat:

Zitat von Luckie (Beitrag 1097796)
@Aphton: Sehr schön. Gefällt mir. Ich habe mir erlaubt das Archiv auf meine Webseite hochzuladen: http://www.michael-puff.de/Programmi...mporte/Aphton/ für mich, damit ich es finde, wenn ich es mal brauche. Ich hoffe, du hast nichts dagegen.

Sein Job ist auch nicht Datei-Schubser :mrgreen:

EDIT hab dann auch mal das Kennzeichen "offene Frage" entfernt ;)

Nachaz 1. Mai 2011 10:13

AW: SHA256 von großen Dateien
 
Wie hätte man das Kennzeichen entfernen können? Hab' auf Anhieb keinen Button dafür gefunden.

Der Satz mit dem Hochladen ist entstanden, da war mit noch nicht bewusst, dass man hier Attachements ranpappen kann, 'Tschuldigung.

Sir Rufo 1. Mai 2011 10:16

AW: SHA256 von großen Dateien
 
Zitat:

Zitat von Nachaz (Beitrag 1098012)
Wie hätte man das Kennzeichen entfernen können? Hab' auf Anhieb keinen Button dafür gefunden.

Antworte mal auf einen Beitrag und scrolle die Seite nach unten, da gibt es entsprechende Checkboxen (Zusätzliche Einstellungen) ;)

Nachaz 1. Mai 2011 11:18

AW: SHA256 von großen Dateien
 
Ich bin auch blöd. Also genau so, wie ich das Ding am Anfang als offene Frage gekennzeichnet hatte...

madtom 2. Mai 2011 17:27

AW: SHA256 von großen Dateien
 
Hallo,

Falls Du noch am SHA-256 Algorythmus interessiert bist, hier ein Link

http://www.cityinthesky.co.uk/opensource/dcpcrypt

Hier kannst Du noch andere Verschlüsselungs bzw. Hash Algorythmen finden.

Beste Grüße

Thomas :)

Nachaz 3. Mai 2011 10:10

AW: SHA256 von großen Dateien
 
Hi, DCrypt klappt leider nicht, da hier mit einem Buffer operiert wird und man so nicht über die 2 GiB-Grenze hinweg kommt. Da hätte ich das lieber selber implementiert.

MD5 war für meine Zwecke ausreichend:
Ich habe erstaunliches über das Kopieren von Files via Windows-Netzwerk gelernt:
Nach dem ich aus meinem 750 GiB Filme-Ordner die Fehlerhaft von Rechner A nach Rechner B übertragenen Dateien gelöscht hatte (insgesamt 177 von 3042), blieben noch 601 GiB übrig. Macht eine stolze Fehlerquote von 33,5%! Die beteiligten Festplatten sind in Ordnung. Bei den MP3s war die Fehlerquote wesentlich geringer aufgrund der kleineren Dateigröße.

Windows 3.11 kam im November '93. Seit dem hätte man ja ein sicheres Kopierverfahren mit impliziten Prüfsummen implementieren können...

gammatester 3. Mai 2011 10:39

AW: SHA256 von großen Dateien
 
Zitat:

Zitat von Nachaz (Beitrag 1098512)
Hi, DCrypt klappt leider nicht, da hier mit einem Buffer operiert wird und man so nicht über die 2 GiB-Grenze hinweg kommt.

Diese Behauptung ist falsch bzw zeugt von Unwissenheit. Die Update-Prozeduren arbeiten mit einem Buffer, also kann ein Aufruf von Update max 2GB verarbeiten. Es hindert Dich niemand mehrere Aufrufe zumachen (außer Unwissenheit etc.)
Zitat:

Zitat von Nachaz (Beitrag 1098512)
Nach dem ich aus meinem 750 GiB Filme-Ordner die Fehlerhaft von Rechner A nach Rechner B übertragenen Dateien gelöscht hatte (insgesamt 177 von 3042), blieben noch 601 GiB übrig. Macht eine stolze Fehlerquote von 33,5%!

Häh? 177/3042 = 5.85% !

Nachaz 3. Mai 2011 10:57

AW: SHA256 von großen Dateien
 
Zitat:

Zitat von gammatester (Beitrag 1098525)
Diese Behauptung ist falsch bzw zeugt von Unwissenheit. Die Update-Prozeduren arbeiten mit einem Buffer, also kann ein Aufruf von Update max 2GB verarbeiten. Es hindert Dich niemand mehrere Aufrufe zumachen (außer Unwissenheit etc.)

Richtig.

Zitat:

Zitat von gammatester (Beitrag 1098525)
Häh? 177/3042 = 5.85% !

149 GiB Fehlerhaft von 750 GiB = 19,8%

Hab' ein wenig Gnade, habe gerade eine zweifache Wurzelspizenresektion mit doppelter "Eröffnung", sowie den Wiederverschluss eines Hohlraumes im Oberkiefer aus einer vorangegangenen OP hinter mir. My Point beeing ich hatte Windows für besser gehalten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz