www.wikidata.de-de.nina.az
In der Informatik ist Fowler Noll Vo kurz FNV ein Algorithmus zur Generierung von Streuwerten uber Datenfelder eine sogenannte Hash Funktion Nachnamensgeber des Kurzels FNV sind Glenn Fowler Landon Curt Noll und Phong Vo die den Algorithmus zusammen entwickelten FNV erfullt alle Kriterien einer guten Hashing Funktion und findet uberall breiten Einsatz dort wo grosse Datenmengen verarbeitet werden sowie Schnelligkeit und Zuverlassigkeit gefordert sind z B in DN Systemen Datenbanken und E Mail Servern FNV eignet sich jedoch nicht fur kryptographischen Einsatz Inhaltsverzeichnis 1 Hash Funktionen 2 FNV Implementation 64 bit Schlussel 3 Implementation 4 Weblink 5 EinzelnachweiseHash Funktionen BearbeitenEine Hash Funktion liest ein Datenfeld ein z B eine Zeichenkette oder eine Datei und verrechnet das Feld Byte fur Byte so dass ein moglichst eindeutiger Schlusselwert zum Datenfeld erzeugt wird eine Art zahlenmassige Stauchung des Feldes Der magische Trick ist die Verwendung von Primzahlen Mit Schlusselwerten assoziierte Daten oder Datenmengen lassen sich in Datenstrukturen indizieren und somit schneller auffinden siehe Binarbaum B Baum AVL Baum Hash Tabelle Zudem konnen Daten mithilfe der Streuwerte auf Unversehrtheit wie Konsistenz uberpruft werden denn uber dasselbe Feld wird stets derselbe Schlusselwert erzeugt solange Feld und Algorithmus exakt gleich bleiben siehe Zyklische Redundanzprufung FNV Implementation 64 bit Schlussel BearbeitenIn C bzw C kann die empfohlene 1 Version FNV 1a des Algorithmus folgendermassen aussehen uint64 t fnFNV const uint8 t pBuffer const uint8 t const pBufferEnd const uint64 t MagicPrime 0x00000100000001b3 uint64 t Hash 0xcbf29ce484222325 for pBuffer lt pBufferEnd pBuffer Hash Hash pBuffer MagicPrime bitweises XOR und dann Multiplikation return Hash In der Originalversion FNV 1 sind lediglich die Operationen XOR und Multiplikation innerhalb der Schleife vertauscht Implementation BearbeitenFur jede Schlusselbreite existiert eine zugehorige alleintaugliche Primzahl Wird ein schmalerer oder breiterer Schlusselwert benotigt muss der Primzahlwert angepasst werden um weiterhin eine gute Streuwertbitverteilung zu erzielen Weblink BearbeitenFNV bei Landon Curt NollEinzelnachweise Bearbeiten FNV bei Landon Curt Noll Notiz am Ende des Abschnittes Abgerufen von https de wikipedia org w index php title FNV Informatik amp oldid 207531544