Fowler-Noll-Vo FNV1-32 Hashkodräknare
Publicerad: 18 februari 2025 kl. 00:16:07 UTC
Senast uppdaterad: 12 januari 2026 kl. 13:29:23 UTC
Fowler-Noll-Vo FNV1-32 Hash Code Calculator
FNV-1 32-bitars hashfunktionen är en del av Fowler-Noll-Vo (FNV)-familjen av hashfunktioner, utformade för snabb hashning samtidigt som en god fördelning av hashvärden bibehålls. Den används ofta i applikationer som hashtabeller, kontrollsummor och datauppslagningar. Den producerar en 32-bitars (4 byte) hashkod, ofta representerad som ett 8-siffrigt hexadecimalt tal.
Fullständig information: Jag har inte skrivit den specifika implementeringen av hashfunktionen som används på den här sidan. Det är en standardfunktion som ingår i programmeringsspråket PHP. Jag har bara gjort webbgränssnittet för att göra den allmänt tillgänglig här för enkelhetens skull.
Om Fowler-Noll-Vo FNV-1 32-bitars hashalgoritmen
Jag är ingen matematiker, men jag ska försöka förklara den här hashfunktionen med hjälp av en analogi som mina icke-matematiker kan förstå. Om du föredrar en vetenskapligt korrekt, skrämmande matematisk förklaring, är jag säker på att du kan hitta den någon annanstans ;-)
Låt oss först tänka på FNV-1-algoritmen som ett recept för att göra en speciell smoothie. Varje ingrediens du lägger till (som frukt, mjölk eller honung) representerar en dataenhet – som bokstäver, siffror eller till och med en hel fil.
Målet är nu att blanda dessa ingredienser på ett mycket specifikt sätt så att även den minsta förändring i receptet (som att lägga till ett extra blåbär) gör att smoothien smakar helt annorlunda. Det är så hashfunktioner fungerar – de skapar en unik "smak" (eller hashvärde) för varje unik uppsättning ingredienser (eller indata).
FNV-1-algoritmen gör detta i flera steg:
Steg 1: Börja med en bas (offsetbas)
Tänk på det här som att hälla en speciell smoothiebas i din mixer. Basen är alltid densamma, oavsett vilka ingredienser du tillsätter. I FNV-1 kallas detta för "offsetbasis" - bara ett fint startnummer.
Steg 2: Tillsätt ingredienserna en i taget (bearbetning av data)
Nu börjar du lägga till dina ingredienser, en i taget – låt oss säga en jordgubbe, sedan en banan och sedan lite honung. Var och en av dessa representerar en byte data.
Steg 3: Blanda med en hemlig multiplikator (FNV Prime)
Efter att du har tillsatt varje ingrediens trycker du på mixningsknappen, men här är twisten: mixern multiplicerar allt med ett hemligt "magiskt tal" som kallas FNV-primtal. Detta hjälper till att mixa saker riktigt bra.
Steg 4: Lägg till en gnutta magi (XOR-operation)
Innan du tillsätter nästa ingrediens strör du över lite magiskt damm (detta är XOR-operationen). Det är som att vända smaken på oväntade sätt, och se till att även små förändringar gör stor skillnad.
Steg 5: Upprepa tills det är klart
Du fortsätter att mixa och strö magi efter varje ny ingrediens tills du har bearbetat allt.
Steg 6: Slutlig smoothie (hashvärde)
När du är klar häller du upp smoothien. Den slutliga smaken (hashvärdet) är unik för just den kombinationen av ingredienser. Om du hade tillsatt bara ett extra blåbär skulle det smaka helt annorlunda.
Versionen som presenteras här är den ursprungliga 32-bitarsversionen av FNV-1. Det finns också en förbättrad 32-bitarsversion av FNV-1a tillgänglig: Länk
Vidare läsning
Om du gillade det här inlägget kanske du också gillar dessa förslag:
