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.
Hashs svolgono un ruolo importante nella facilitazione delle 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à - le lettere dell'alfabeto inglese - mentre anche la lunghezza variabile delle voci rallenterebbe la ricerca.
Al contrario, applicando una funzione hash renderebbe il CLa vita di omputer è molto più facile. 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.
Hashes funzionano anche come firme digitali. Ad esempio, un mittente, Robert, vuole inviare un documento a qualcuno e il destinatario, Mary, vuole assicurarsi che il documento non sia stato Tamperosso con mentre 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 puoi "reverse-engiNeer "il documento originale della sua chiave hash.