Entwickler-Ecke

Algorithmen, Optimierung und Assembler - eindeutige Hash für 1 Mio Objekte


_Joe_ - Mi 14.07.10 11:19
Titel: eindeutige Hash für 1 Mio Objekte
Hallo,

ich hab hier ein Datenbank mit 1.000.000 Einträge zu jeden, dieser Eintrag hätte ich gern ein einzigartigen Hash Wert.

Würde SHA-1 http://en.wikipedia.org/wiki/SHA-1 reichen? Meine Rechnung sieht so aus:


16^40 zur Erklärung: 16 = Zeichen von Hexadezimal, 40 Länge des Outputs also "Plätze"


danielf - Mi 14.07.10 11:28

Hallo,

vielleicht erzählst du uns was du mit dem Hash-Wert vor hast? Vlt. gibt es eine einfacherer/bessere Lösung.

Gruß


Gausi - Mi 14.07.10 11:29

Hashwerte sind prinzipbedingt nie einzigartig. Bei den gängigen Verfahren, auch schon bei MD5, ist die Kollisionswahrscheinlichkeit im Normalfall aber recht gering.

Wenn du damit leben kannst, dass in sehr eltenen Fällen das fehlschlägt, kannst du imho dabei bleiben, ansonsten musst du Mechanismen zur Kollisionsauflösung anwenden. Z.B. an den Hashplätzen jeweils eine Liste verwalten, oder einen Ausweichplatz bestimmen. Z.B. durch die Hashtable laufen bis zum nächsten freien Platz (linear oder in quadratischen Schritten), oder durch eine zweite Hashfunktion einen Ausweichplatz bestimmen.


Flamefire - Mi 14.07.10 11:54

Und in ner Datenbank tabelle haben die Einträge meist eine autoincrement id. Die ist doch schon einzigartig.


uall@ogc - Mi 14.07.10 19:13

Ansonsten kannst du auch noch GUIDs nehmen.