Fowler-Noll-Vo FNV1a-32 Hashkodräknare
Publicerad: 18 februari 2025 kl. 00:09:55 UTC
Hashkodräknare som använder Fowler-Noll-Vo 1a 32 bitars (FNV1a-32) hashfunktion för att beräkna en hashkod baserat på textinmatning eller filuppladdning.Fowler-Noll-Vo FNV1a-32 Hash Code Calculator
FNV-1a 32-bitars hashfunktion är en del av Fowler–Noll–Vo (FNV) familjen av hashfunktioner, designad för snabb hash samtidigt som en god fördelning av hashvärden bibehålls. Det 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.
FNV-1a-varianten är en förbättrad version jämfört med den ursprungliga FNV-1-funktionen med bättre säkerhet.
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-1a 32-bitars Hash Algorithm
Jag är ingen matematiker, men jag ska försöka förklara denna hash-funktion med en analogi som mina andra 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 bit data - som bokstäver, siffror eller till och med en hel fil.
Nu är målet att blanda dessa ingredienser på ett mycket specifikt sätt så att även den minsta förändringen 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).
Sättet som FNV-1-algoritmen gör detta på är en process i flera steg:
Steg 1: Börja med en bas (offsetbasis)
Tänk på det här som att hälla en speciell smoothiebas i din mixer. Denna bas är alltid densamma, oavsett vilka ingredienser du lägger till. I FNV-1 kallas detta "offset basis" - bara ett fancy startnummer.
Steg 2: Lägg till ingredienser en efter en (bearbetar data)
Nu börjar du lägga till dina ingredienser, en i taget - låt oss säga en jordgubbe, sedan en banan, sedan lite honung. Var och en av dessa representerar en byte med data.
Steg 3: Blanda med en hemlig multiplikator (FNV Prime)
Efter att ha lagt till varje ingrediens trycker du på blandningsknappen, men här är twisten: mixern multiplicerar allt med ett hemligt "magiskt tal" som kallas FNV-primtal. Detta hjälper till att blanda ihop saker riktigt bra.
Steg 4: Lägg till en Dash of Magic (XOR Operation)
Innan du lägger till nästa ingrediens, strör du i lite magiskt damm (detta är XOR-operationen). Det är som att vända på 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 blanda och spritsa magi efter varje ny ingrediens tills du har bearbetat allt.
Steg 6: Slutlig smoothie (hashvärde)
När du är klar häller du ut smoothien. Den slutliga smaken (hashvärdet) är unik för den exakta kombinationen av ingredienser. Om du hade lagt till ens ett extra blåbär skulle det smaka helt annorlunda.
Den version som presenteras här är den förbättrade FNV-1a 32-bitarsversionen. Behöver du originalversionen har jag även en miniräknare för det: Fowler-Noll-Vo FNV1-32 Hashkodräknare