<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=FNV_%28Informatik%29</id>
	<title>FNV (Informatik) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=FNV_%28Informatik%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=FNV_(Informatik)&amp;action=history"/>
	<updated>2026-06-05T08:34:27Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=FNV_(Informatik)&amp;diff=983000&amp;oldid=prev</id>
		<title>imported&gt;Skranon: Änderungen von 84.119.16.74 (Diskussion) auf die letzte Version von Wiki-Friend12345 zurückgesetzt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=FNV_(Informatik)&amp;diff=983000&amp;oldid=prev"/>
		<updated>2024-10-31T19:25:29Z</updated>

		<summary type="html">&lt;p&gt;Änderungen von &lt;a href=&quot;/index.php/Spezial:Beitr%C3%A4ge/84.119.16.74&quot; title=&quot;Spezial:Beiträge/84.119.16.74&quot;&gt;84.119.16.74&lt;/a&gt; (&lt;a href=&quot;/index.php?title=Benutzer_Diskussion:84.119.16.74&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer Diskussion:84.119.16.74 (Seite nicht vorhanden)&quot;&gt;Diskussion&lt;/a&gt;) auf die letzte Version von &lt;a href=&quot;/index.php?title=Benutzer:Wiki-Friend12345&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer:Wiki-Friend12345 (Seite nicht vorhanden)&quot;&gt;Wiki-Friend12345&lt;/a&gt; zurückgesetzt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In der Informatik ist &amp;#039;&amp;#039;&amp;#039;Fowler-Noll-Vo&amp;#039;&amp;#039;&amp;#039; (kurz: &amp;#039;&amp;#039;&amp;#039;FNV&amp;#039;&amp;#039;&amp;#039;) ein [[Algorithmus]] zur Generierung von [[Streuwert]]en über Datenfelder: eine sogenannte [[Hash-Funktion]]. Nachnamensgeber des Kürzels &amp;#039;&amp;#039;FNV&amp;#039;&amp;#039; sind [[Glenn Fowler]], [[Landon Curt Noll]] und [[Phong Vo]], die den Algorithmus zusammen entwickelten. FNV erfüllt alle Kriterien einer guten Hashing-Funktion und findet überall breiten Einsatz dort, wo große Datenmengen verarbeitet werden, sowie Schnelligkeit und Zuverlässigkeit gefordert sind, z.&amp;amp;nbsp;B. in [[Domain Name System|DN-Systemen]], [[Datenbank]]en und [[E-Mail-Server]]n. FNV eignet sich jedoch nicht für kryptographischen Einsatz.&lt;br /&gt;
&lt;br /&gt;
== Hash-Funktionen ==&lt;br /&gt;
Eine [[Hash-Funktion]] liest ein Datenfeld ein, z.&amp;amp;nbsp;B. eine Zeichenkette oder eine Datei, und verrechnet das Feld Byte für Byte so, dass ein möglichst eindeutiger Schlüsselwert zum Datenfeld erzeugt wird – eine Art &amp;#039;&amp;#039;zahlenmäßige Stauchung&amp;#039;&amp;#039; des Feldes. Der „magische Trick“ ist die Verwendung von Primzahlen.&lt;br /&gt;
&lt;br /&gt;
Mit Schlüsselwerten assoziierte Daten oder Datenmengen lassen sich in [[Datenstruktur]]en indizieren und somit schneller auffinden (siehe [[Binärbaum]], [[B-Baum]], [[AVL-Baum]], [[Hashtabelle|Hash-Tabelle]]).&lt;br /&gt;
Zudem können Daten mithilfe der Streuwerte auf Unversehrtheit wie Konsistenz überprüft werden; denn über dasselbe Feld wird stets derselbe Schlüsselwert erzeugt – solange Feld und Algorithmus exakt gleich bleiben (siehe [[Zyklische Redundanzprüfung]]).&lt;br /&gt;
&lt;br /&gt;
== FNV-Implementation, 64-bit-Schlüssel ==&lt;br /&gt;
In [[C (Programmiersprache)|C]] bzw. [[C++]] kann die empfohlene&amp;lt;ref&amp;gt;&lt;br /&gt;
[http://www.isthe.com/chongo/tech/comp/fnv/#FNV-1a FNV bei Landon Curt Noll] Notiz am Ende des Abschnittes&amp;lt;/ref&amp;gt; Version FNV-1a des Algorithmus folgendermaßen aussehen:&lt;br /&gt;
&lt;br /&gt;
  uint64_t &lt;br /&gt;
  fnFNV (const uint8_t* pBuffer, const uint8_t* const pBufferEnd)&lt;br /&gt;
  {&lt;br /&gt;
      const uint64_t  MagicPrime = 0x00000100000001b3;&lt;br /&gt;
      uint64_t        Hash       = 0xcbf29ce484222325;&lt;br /&gt;
  &lt;br /&gt;
      for ( ; pBuffer &amp;lt; pBufferEnd; pBuffer++)&lt;br /&gt;
          Hash = (Hash ^ *pBuffer) * MagicPrime;   // bitweises XOR und dann Multiplikation&lt;br /&gt;
 &lt;br /&gt;
      return Hash;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In der Originalversion FNV-1 sind lediglich die Operationen [[XOR]] und Multiplikation innerhalb der Schleife vertauscht.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
Für jede Schlüsselbreite existiert eine zugehörige alleintaugliche Primzahl. Wird ein schmalerer oder breiterer Schlüsselwert benötigt, muss der Primzahlwert angepasst werden, um weiterhin eine gute Streuwertbitverteilung zu erzielen.&lt;br /&gt;
&lt;br /&gt;
== Weblink ==&lt;br /&gt;
* [http://www.isthe.com/chongo/tech/comp/fnv/ FNV] bei [[Landon Curt Noll]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hash|Fnv]]&lt;br /&gt;
[[Kategorie:Algorithmus|Fnv]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Skranon</name></author>
	</entry>
</feed>