Skip to main content

Cos'è una funzione hash?

Una funzione hash è un metodo di controllo degli errori del computer e organizzazione dei dati.Una grande quantità di dati viene manipolata con un algoritmo matematico fino a quando non viene lasciato un piccolo numero.Questo numero viene utilizzato come parte del catalogo che consente a un computer di trovare tale informazione specifica in seguito.Una buona funzione hash dovrebbe dare un risultato abbastanza piccolo, quindi è facile da usare, ma fornire un risultato unico per ogni set di dati.Una funzione hash fornisce inoltre un controllo di errore minimo, poiché una buona parte e un buon dato dovrebbe produrre risultati diversi quando hash.

In un database di computer, in genere è più facile salvare le posizioni con numeri anziché lettere.Le cifre hanno un numero molto maggiore di metodi per l'organizzazione e l'ordinamento rispetto alle lettere.Di conseguenza, i numeri vengono spesso assegnati a posizioni contenenti informazioni variabili all'interno del database di un computer.Questi numeri possono essere arbitrari o rappresentativi delle informazioni.

I numeri arbitrari sono semplicemente assegnati in base alla posizione nella memoria del computer o all'ordine in cui i dati sono stati salvati.Il salvataggio di informazioni in questo modo è comune nei database più piccoli o in luoghi in cui i dati non cambiano molto spesso.Se utilizzato in altre aree, la reindexing del database inizia a richiedere sempre più tempo fino a quando non è più efficiente.

Informazioni rappresentative è dove entrano la funzione hash. Le informazioni, indipendentemente da ciò che contiene, vengono tradotte in numeri.Questi numeri vengono immessi in un costrutto matematico che produce un piccolo numero, in genere un numero intero.Se la funzione hash funziona correttamente, ogni posizione in quella parte del database avrà il suo risultato unico.Se due o più posizioni hanno lo stesso risultato, i programmi potrebbero far emergere le informazioni errate in base all'hash duplicato.

È possibile utilizzare una funzione hash anche per altre cose.Grandi quantità di dati altamente ripetitivi possono essere suddivise in valori più piccoli.Questo è particolarmente bello quando si cerca sequenze ripetute in grandi set di dati.Ad esempio, l'acido deossiribonucleico (DNA) è costituito da un numero molto piccolo di componenti diversi.Quando si abbattono quei componenti usando i valori di hash, i luoghi in cui due stringhe di DNA sono uguali e diverse diventano molto chiare, semplicemente dal confronto di due piccole colonne di numeri.

L'ultima area in cui le funzioni di hash sono utili è nel controllo degli errori.Quando le informazioni vengono inizialmente hash, il valore viene registrato come parte dell'indice della posizione.Se tali informazioni sono necessarie in seguito, le informazioni vengono recuperate insieme a quel valore.Se il programma rehash le informazioni e il risultato è diverso, ad un certo punto si è verificata una corruzione.Questa corruzione è di solito con i dati, poiché una corruzione hash avrebbe impedito il recupero dei dati in primo luogo.