Miklix

Fowler-Noll-Vo FNV1-64 Hashkodräknare

Publicerad: 17 februari 2025 kl. 21:35:16 UTC

Hashkodräknare som använder Fowler-Noll-Vo 1 64 bitars (FNV1-64) hashfunktion för att beräkna en hashkod baserat på textinmatning eller filuppladdning.

Denna sida har maskinöversatts från engelska för att göra den tillgänglig för så många som möjligt. Tyvärr är maskinöversättning ännu inte en fulländad teknik, så fel kan uppstå. Om du föredrar det kan du se den engelska originalversionen här:

Fowler-Noll-Vo FNV1-64 Hash Code Calculator

FNV-1 64-bitars hashfunktion är en del av Fowler–Noll–Vo (FNV) familjen av hashfunktioner, designad för snabb hash samtidigt som en bra fördelning av hashvärden bibehålls. Det används ofta i applikationer som hashtabeller, kontrollsummor och datauppslagningar. Den producerar en 64-bitars (8 byte) hash-kod, ofta representerad som ett 16-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.


Beräkna ny hashkod

Data som skickas eller filer som laddas upp via detta formulär kommer endast att sparas på servern så länge som det tar att generera den begärda hashkoden. De kommer att raderas omedelbart innan resultatet returneras till din webbläsare.

Ingångsdata:



Den skickade texten är UTF-8-kodad. Eftersom hashfunktioner arbetar med binära data kommer resultatet att bli annorlunda än om texten hade en annan kodning. Om du behöver beräkna en hash av en text i en specifik kodning bör du ladda upp en fil i stället.



Om Fowler-Noll-Vo FNV-1 64-bitars Hash Algorithm

Jag är ingen matematiker, men jag ska försöka förklara denna hashfunktion 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 ursprungliga FNV-1 64-bitarsversionen. Det finns också en förbättrad FNV-1a 64-bitarsversion tillgänglig: Fowler-Noll-Vo FNV1a-64 Hashkodräknare

Dela på BlueskyDela på FacebookDela på LinkedInDela på TumblrDela på XDela på LinkedInFäst på Pinterest

Mikkel Bang Christensen

Om författaren

Mikkel Bang Christensen
Mikkel är skaparen och ägaren av miklix.com. Han har över 20 års erfarenhet som professionell datorprogrammerare/mjukvaruutvecklare och är för närvarande heltidsanställd på ett stort europeiskt IT-bolag. När han inte bloggar ägnar han sin fritid åt en mängd olika intressen, hobbies och aktiviteter, vilket i viss mån kan återspeglas i de olika ämnen som behandlas på den här webbplatsen.