Geeigneter Hash Algo ... ???
-
Folgendes "Problem" hab ich zu loesen:
Die User lesen bei mir komplexe "DatenStrukturen" (XML Dateien, bis zu mehrere 100 MByte gross) ein, als Grundlage fuer die weitere funktion des Progs.
Das einlesen und auch das mergen (zusammenfuehren mehrer dateien) dauert prinzipbedingt schon lange. Ich will das also cachen.
Reihenfolge wie die Dateien eingelesen werden ist relevant !Also user liest folgende Dateien ein:
C:\myPorgs\Datenbanken\Db2343.xml
C:\myPorgs\Datenbanken\Db33435.xml
C:\myPorgs\Datenbanken\Db586-35976.xml
C:\myPorgs\Datenbanken\GTest21049.xml
C:\myPorgs\Datenbanken\Db83457.xmlDafuer breucht ich nen sofort ermittelbaren Dateinamen fuer den "Cache".
Kompatiblitaet ist Windows XP 32 und groesser(windows 7, vista eher unwahrscheinlich).
Also Dateiname selber darf ned mehr als 259 Zeichen haben.Was fuer einen HashAlgo nimmt man da am besten, mit einer fuer den Fall geringen Kollisionswahrschinlichkeit ?
Ciao ...
-
Moeglichkeiten gibt es viele: Betriebssystemsfunktion fuer anlegen temporaerer Dateien nutzen, Verzeichnis Cache machen und Dateien dort ablegen, Datum + Uhrzeit, Zufallszahl aus Systemzeit oder /dev/random (jaja, hat Windows vielleicht nicht), ...
-
Im moment gehts erst mal nur um den Dateinamen.
Ich muss nen "Cache" also ne binaerdatei, dafuer anlegen.
Die muss ich irgendwie aus der Liste "errechnen" weil ich muss den dateinamen ja wiederfinden.Nur darum gehts erstmal.
Der cache selber wird dann auch checksummen, über Dateiattribute (timestamps) versionsnummern etc. bekommen.
und in 3ter stufe werd ich sicher die ursprungsdateien binaer mit ner checksumme selber auch noch absichern. Kann sein das die daten modifiziert werden.
Die checksummen sind eh klar, da brauch ich performance (100+ MB XML binaer hashen muss fix gehen) da werd ich sicher nen crc algo nehmen.
Ich koennt auch nen nixsagenden Dateinahmen nehmen, und die "Liste" da drinne serialisieren als header, aber denk das dauert zu lange, da im ernstfall, nach monetelanger arbeit, in dem cacheverzeichniss sich 100erte von solchen gehashten sets befinden koennten.
Ciao ...