Fowler-Noll-Vo FNV1a-64 Hashcodecalculator
Gepubliceerd: 17 februari 2025 om 21:46:54 UTC
Hashcodecalculator die de Fowler-Noll-Vo 1a 64 bit (FNV1a-64) hashfunctie gebruikt om een hashcode te berekenen op basis van tekstinvoer of geüpload bestand.Fowler-Noll-Vo FNV1a-64 Hash Code Calculator
De FNV-1a 64-bits hashfunctie is onderdeel van de Fowler–Noll–Vo (FNV)-familie van hashfuncties, ontworpen voor snelle hashing met behoud van een goede distributie van hashwaarden. Het wordt veel gebruikt in toepassingen zoals hashtabellen, checksums en data lookups. Het produceert een 64-bits (8 bytes) hashcode, vaak weergegeven als een hexadecimaal getal van 16 cijfers.
De FNV-1a-variant is een verbeterde versie van de originele FNV-1-functie met betere beveiliging.
Full disclosure: Ik heb de specifieke implementatie van de hashfunctie die op deze pagina wordt gebruikt niet geschreven. Het is een standaardfunctie die wordt meegeleverd met de programmeertaal PHP. Ik heb alleen de webinterface gemaakt om hem hier voor het gemak publiekelijk beschikbaar te maken.
Over het Fowler-Noll-Vo FNV-1a 64 bit Hash-algoritme
Ik ben geen wiskundige, maar ik zal proberen deze hashfunctie uit te leggen met een analogie die mijn niet-wiskundige collega's kunnen begrijpen. Als je de voorkeur geeft aan een wetenschappelijk correcte, enge wiskundige uitleg, dan weet ik zeker dat je die ergens anders kunt vinden ;-)
Laten we eerst het FNV-1-algoritme zien als een recept voor het maken van een speciale smoothie. Elk ingrediënt dat u toevoegt (zoals fruit, melk of honing) vertegenwoordigt een stukje data - zoals letters, cijfers of zelfs een heel bestand.
Nu is het doel om deze ingrediënten op een heel specifieke manier te mixen, zodat zelfs de kleinste verandering in het recept (zoals het toevoegen van een extra bosbes) de smoothie compleet anders laat smaken. Zo werken hashfuncties - ze creëren een unieke "smaak" (of hashwaarde) voor elke unieke set ingrediënten (of invoergegevens).
De manier waarop het FNV-1-algoritme dit doet, is een proces dat uit meerdere stappen bestaat:
Stap 1: Begin met een basis (offsetbasis)
Denk hierbij aan het gieten van een speciale smoothiebasis in je blender. Deze basis is altijd hetzelfde, ongeacht welke ingrediënten je toevoegt. In FNV-1 wordt dit de "offsetbasis" genoemd - gewoon een chique startnummer.
Stap 2: Ingrediënten één voor één toevoegen (gegevens verwerken)
Nu begin je met het toevoegen van je ingrediënten, één voor één - laten we zeggen een aardbei, dan een banaan, dan wat honing. Elk van deze vertegenwoordigt een byte aan data.
Stap 3: Meng met een geheime multiplier (de FNV Prime)
Nadat je elk ingrediënt hebt toegevoegd, druk je op de blendknop, maar hier is de twist: de blender vermenigvuldigt alles met een geheim "magisch getal" genaamd de FNV prime. Dit helpt om dingen echt goed te mixen.
Stap 4: Voeg een vleugje magie toe (XOR-bewerking)
Voordat je het volgende ingrediënt toevoegt, strooi je er een beetje magisch poeder overheen (dit is de XOR-operatie). Het is alsof je de smaak op onverwachte manieren omdraait, zodat zelfs kleine veranderingen een groot verschil maken.
Stap 5: Herhaal totdat het klaar is
Je blijft mengen en magie toevoegen na elk nieuw ingrediënt, totdat je alles hebt verwerkt.
Stap 6: Laatste Smoothie (Hashwaarde)
Als je klaar bent, giet je de smoothie uit. De uiteindelijke smaak (de hashwaarde) is uniek voor die exacte combinatie van ingrediënten. Als je ook maar één extra bosbes had toegevoegd, zou het compleet anders smaken.
De hier gepresenteerde versie is de verbeterde FNV-1a 64 bit versie. Als u de originele versie nodig hebt, heb ik ook een rekenmachine daarvoor: Fowler-Noll-Vo FNV1-64 Hashcodecalculator