Calcolatrice del codice hash Fowler-Noll-Vo FNV1-32
Pubblicato: 18 febbraio 2025 alle ore 00:15:45 UTC
Calcolatrice del codice hash che utilizza la funzione hash Fowler-Noll-Vo 1 a 32 bit (FNV1-32) per calcolare un codice hash in base all'input di testo o al caricamento di un file.Fowler-Noll-Vo FNV1-32 Hash Code Calculator
La funzione hash FNV-1 a 32 bit fa parte della famiglia di funzioni hash Fowler–Noll–Vo (FNV), progettata per un hashing veloce mantenendo una buona distribuzione dei valori hash. È comunemente utilizzata in applicazioni come tabelle hash, checksum e ricerche di dati. Produce un codice hash a 32 bit (4 byte), spesso rappresentato come un numero esadecimale a 8 cifre.
Informazioni complete: non ho scritto l'implementazione specifica della funzione hash utilizzata in questa pagina. Si tratta di una funzione standard inclusa nel linguaggio di programmazione PHP. Ho solo creato l'interfaccia web per renderla pubblicamente disponibile qui per comodità.
Informazioni sull'algoritmo hash a 32 bit Fowler-Noll-Vo FNV-1
Non sono un matematico, ma proverò a spiegare questa funzione hash usando un'analogia che i miei colleghi non matematici possano capire. Se preferisci una spiegazione scientificamente corretta e spaventosa, sono sicuro che puoi trovarla altrove ;-)
Per prima cosa, pensiamo all'algoritmo FNV-1 come a una ricetta per preparare uno speciale frullato. Ogni ingrediente che aggiungi (come frutta, latte o miele) rappresenta un pezzo di dati, come lettere, numeri o persino un intero file.
Ora, l'obiettivo è mescolare questi ingredienti in un modo molto specifico, in modo che anche il più piccolo cambiamento nella ricetta (come l'aggiunta di un mirtillo in più) renda il sapore del frullato completamente diverso. Ecco come funzionano le funzioni hash: creano un "sapore" unico (o valore hash) per ogni set unico di ingredienti (o dati di input).
Il modo in cui l'algoritmo FNV-1 esegue questa operazione è un processo in più fasi:
Fase 1: Iniziare con una base (base offset)
Immagina di versare una base speciale per frullato nel tuo frullatore. Questa base è sempre la stessa, indipendentemente dagli ingredienti che aggiungi. In FNV-1, questa è chiamata "base offset", solo un numero di partenza fantasioso.
Fase 2: Aggiungere gli ingredienti uno alla volta (elaborazione dei dati)
Ora inizia ad aggiungere i tuoi ingredienti, uno alla volta, diciamo una fragola, poi una banana, poi un po' di miele. Ognuno di questi rappresenta un byte di dati.
Fase 3: Miscela con un moltiplicatore segreto (FNV Prime)
Dopo aver aggiunto ogni ingrediente, premi il pulsante "frulla", ma ecco il colpo di scena: il frullatore moltiplica tutto per un "numero magico" segreto chiamato FNV primo. Questo aiuta a mescolare le cose molto bene.
Passaggio 4: aggiungi un pizzico di magia (operazione XOR)
Prima di aggiungere l'ingrediente successivo, si spruzza un po' di polvere magica (questa è l'operazione XOR). È come capovolgere il sapore in modi inaspettati, assicurandosi che anche piccoli cambiamenti facciano una grande differenza.
Passaggio 5: ripetere fino al termine
Continui a frullare e ad aggiungere la magia dopo ogni nuovo ingrediente, finché non hai finito di lavorarli tutti.
Fase 6: Frullato finale (valore hash)
Quando hai finito, versi il frullato. Il sapore finale (il valore hash) è unico per quella combinazione esatta di ingredienti. Se avessi aggiunto anche solo un mirtillo in più, avrebbe un sapore completamente diverso.
La versione presentata qui è la versione originale FNV-1 a 32 bit. Esiste anche una versione migliorata FNV-1a a 32 bit disponibile: Calcolatrice del codice hash Fowler-Noll-Vo FNV1a-32