Una funzione di hash è un algoritmo matematico che consente la trasformazione di un messaggio di lunghezza aribitraria in una stringa di lunghezza prefissata, cercando di fare in modo che da questa stringa non si possa risalire al messaggio che l'ha generata.
La lunghezza della stringa finale è direttamente correlata con la sicurezza della funzione di hash, dunque, più una stringa è lunga, minore sarà la probabilità di trovare due messaggi con lo stesso digest o impronta digitale (risultato dell'applicazione dell'algoritmo di hash) che, identifica in modo univoco il documento e il suo contenuto.
La funzione di hash è dunque reallizzata in modo da rendere minima la probabilità che da testi diversi si possa ottenere il medesimo valore dell'impronta, inoltre è a senso unico nel senso che non è possibile ottenere nuovamente il testo originario tramite l'impronta digitale.
Alcune funzioni di hash sono comunemente utilizzate per la creazione di firme digitali, altre per la criptazione di password e dati sensibili come: MD5 e SHA-1.