Fowler-Noll-Vo FNV1-32 Hash-kode sakrekenaar
Gepubliseer: 18 Februarie 2025 om 00:17:20 UTC
Laas opgedateer: 12 Januarie 2026 om 13:29:34 UTC
Fowler-Noll-Vo FNV1-32 Hash Code Calculator
Die FNV-1 32-bis hash-funksie is deel van die Fowler-Noll-Vo (FNV) familie van hash-funksies, ontwerp vir vinnige hashing terwyl 'n goeie verspreiding van hash-waardes gehandhaaf word. Dit word algemeen gebruik in toepassings soos hash-tabelle, kontrolesomme en data-opsoeke. Dit produseer 'n 32-bis (4 greep) hash-kode, dikwels voorgestel as 'n 8-syfer heksadesimale getal.
Volledige openbaarmaking: Ek het nie die spesifieke implementering van die hash-funksie wat op hierdie bladsy gebruik word, geskryf nie. Dit is 'n standaardfunksie wat by die PHP-programmeertaal ingesluit is. Ek het net die webkoppelvlak gemaak om dit vir gerief hier publiek beskikbaar te maak.
Oor die Fowler-Noll-Vo FNV-1 32-bis Hash-algoritme
Ek is nie 'n wiskundige nie, maar ek sal probeer om hierdie hash-funksie te verduidelik deur 'n analogie te gebruik wat my mede-nie-wiskundiges kan verstaan. As jy 'n wetenskaplik korrekte, skrikwekkende wiskundige verduideliking verkies, is ek seker jy kan dit elders vind ;-)
Eerstens, kom ons dink aan die FNV-1-algoritme soos 'n resep vir die maak van 'n spesiale smoothie. Elke bestanddeel wat jy byvoeg (soos vrugte, melk of heuning) verteenwoordig 'n stukkie data - soos letters, syfers of selfs 'n hele lêer.
Nou is die doel om hierdie bestanddele op 'n baie spesifieke manier te meng sodat selfs die kleinste verandering in die resep (soos om een ekstra bloubessie by te voeg) die smoothie heeltemal anders laat smaak. Dis hoe hash-funksies werk - hulle skep 'n unieke "geur" (of hash-waarde) vir elke unieke stel bestanddele (of invoerdata).
Die manier waarop die FNV-1-algoritme dit doen, is 'n proses met verskeie stappe:
Stap 1: Begin met 'n basis (verskuiwingsbasis)
Dink hieraan soos om 'n spesiale smoothie-basis in jou blender te gooi. Hierdie basis is altyd dieselfde, ongeag watter bestanddele jy byvoeg. In FNV-1 word dit die "offset basis" genoem - net 'n deftige beginnommer.
Stap 2: Voeg bestanddele een vir een by (verwerking van data)
Nou begin jy jou bestanddele byvoeg, een op 'n slag - kom ons sê 'n aarbei, dan 'n piesang, dan 'n bietjie heuning. Elk van hierdie verteenwoordig 'n greep data.
Stap 3: Meng met 'n geheime vermenigvuldiger (Die FNV Prime)
Nadat jy elke bestanddeel bygevoeg het, druk jy die mengknoppie, maar hier is die kinkel: die menger vermenigvuldig alles met 'n geheime "magiese getal" genaamd die FNV-priemgetal. Dit help om dinge baie goed te meng.
Stap 4: Voeg 'n tikkie magie by (XOR-bewerking)
Voordat jy die volgende bestanddeel byvoeg, sprinkel jy 'n bietjie towerstof in (dit is die XOR-bewerking). Dis soos om die geur op onverwagte maniere om te keer, wat verseker dat selfs klein veranderinge 'n groot verskil maak.
Stap 5: Herhaal tot klaar
Jy hou aan om te meng en towerkrag na elke nuwe bestanddeel te sprinkel totdat jy alles verwerk het.
Stap 6: Finale Smoothie (Hash-waarde)
Wanneer jy klaar is, gooi jy die smoothie uit. Die finale smaak (die hash-waarde) is uniek aan daardie presiese kombinasie van bestanddele. As jy selfs een ekstra bloubessie bygevoeg het, sou dit heeltemal anders smaak.
Die weergawe wat hier aangebied word, is die oorspronklike FNV-1 32-bis weergawe. Daar is ook 'n verbeterde FNV-1a 32-bis weergawe beskikbaar: Skakel
Verdere Leeswerk
As jy hierdie plasing geniet het, sal jy dalk ook van hierdie voorstelle hou:
