Che 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 successivamente quella specifica informazione. Una buona funzione di hash dovrebbe dare un risultato abbastanza piccolo, quindi è facile da usare, ma fornisce un risultato unico per ogni set di dati. Una funzione hash fornisce anche un controllo minimo degli errori, poiché un dato danneggiato e un buon dato dovrebbero produrre risultati diversi quando viene eseguito l'hashing.
In un database di computer, in genere è più semplice salvare 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 vengono semplicemente assegnati in base alla posizione nella memoria del computer o all'ordine in cui i dati sono stati salvati. Il salvataggio delle 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 reindicizzazione del database inizia a richiedere sempre più tempo fino a quando non è più efficiente.
Le informazioni rappresentative sono il punto in cui entra in gioco la funzione hash. Le informazioni, indipendentemente da ciò che contengono, vengono tradotte in numeri. Questi numeri vengono inseriti in un costrutto matematico che genera un numero piccolo, 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 visualizzare informazioni errate in base all'hash duplicato.
È possibile utilizzare una funzione hash anche per altre cose. Grandi quantità di dati altamente ripetitivi possono essere suddivisi in valori più piccoli. Ciò è particolarmente utile quando si cercano sequenze ripetute in set di dati di grandi dimensioni. Ad esempio, l'acido desossiribonucleico (DNA) è costituito da un numero molto piccolo di componenti diversi. Quando si suddividono quei componenti usando i valori di hash, i punti in cui due stringhe di DNA sono uguali e differenti diventano molto chiari, semplicemente confrontando due piccole colonne di numeri.
L'ultima area in cui le funzioni di hash sono utili è il controllo degli errori. Quando le informazioni vengono hash inizialmente, il valore viene registrato come parte dell'indice della posizione. Se tali informazioni sono necessarie in un secondo momento, le informazioni vengono recuperate insieme a quel valore. Se il programma ridisegna le informazioni e il risultato è diverso, a un certo punto si è verificata una corruzione. Questa corruzione è di solito con i dati, poiché una corruzione dell'hash avrebbe impedito il recupero dei dati in primo luogo.