Skip to main content

Cosa sono gli hashes?

Gli hash sono formule matematiche che prendono una stringa di dati di lunghezza variabile, di solito sotto forma di testo, e li convertono in valori numerici più brevi a lunghezza fissa.Gli hash vengono utilizzati frequentemente nei database dei computer per rendere le ricerche più veloci ed efficienti.Sono anche utilizzati nella crittografia per garantire che le password non siano compromesse e per autenticare le firme digitali, tra gli altri usi.Gli hash si presentano anche con il nome delle funzioni di hash e possono anche essere considerati algoritmi.

Gli hash svolgono un ruolo importante nel facilitare le ricerche di database.In un database composto da nomi, ad esempio, se un utente cerca "John Doe", il computer dovrebbe abbinare tutti i caratteri nella ricerca di quelli di ogni voce di database.Ogni personaggio nel nome avrebbe 26 diverse possibilità e mdash;le lettere dell'alfabeto inglese mdash;Mentre la lunghezza variabile delle voci rallenterebbe anche la ricerca.

Al contrario, l'applicazione di una funzione hash renderebbe la vita del computer molto più semplice.Trasformare ogni stringa di testo in una serie di numeri semplificherebbe la ricerca, perché il computer avrebbe solo dieci possibilità per verificare ogni carattere: cifre "0" a "9".La lunghezza fissa della serie di numeri aiuta anche il computer a fare il proprio lavoro in modo più efficiente.

In un database con una funzione hash applicata, tutte le voci hanno un numero univoco corrispondente.Questo si chiama chiave hash.In questo caso, quando effettui una ricerca, il computer applica prima la funzione hash all'input che hai scritto, come "John Doe".Ciò si traduce in un valore numerico, ad esempio "456789."Il computer può quindi abbinare rapidamente questo risultato alla chiave hash corrispondente alla voce corretta.

Hash funzionano anche come firme digitali.Ad esempio, un mittente, Robert, vuole inviare un documento a qualcuno e al destinatario, Mary, vuole assicurarsi che il documento non sia stato manomesso mentre era in viaggio.Il mittente, Robert, deve solo eseguire il documento attraverso una funzione hash, che si traduce in un valore numerico.Robert quindi crittografa la chiave hash e invia il documento insieme alla chiave crittografata.

Mary riceve sia gli articoli che decritta la chiave hash.Ora può vedere il valore numerico derivante dal documento prima che fosse inviato.Per verificare che il documento nelle sue mani sia esattamente lo stesso, esegue il documento attraverso una funzione hash sul suo computer.Infine, confronta entrambe le chiavi.Se sono uguali, il documento non è stato modificato sulla strada per il destinatario.

Esistono molte diverse funzioni di hash, ognuna con le proprie formule matematiche.Affinché una funzione hash funzioni, deve ridurre al minimo qualsiasi collisione, che si verifica quando due voci di database hanno la stessa chiave hash.Anche le funzioni di hash devono essere a senso unico.Ciò significa che puoi produrre una chiave da una voce o documento del database, ma non viceversa.In altre parole, non è possibile "ingegnere inverso" il documento originale dalla chiave hash.