Una funzione hash crittografica è uno strumento che trasforma i dati arbitrari in un'impronta a lunghezza fissa. Le funzioni hash sono create in modo che sia difficile trovare due input diversi con la stessa impronta e individuare un messaggio con impronte corrispondenti a un valore fisso.
A differenza degli schemi di crittografia, quelli di firma e i MAC, le funzioni hash non hanno una chiave. Chiunque può calcolare l'hash di un input e la funzione hash produrrà sempre lo stesso output sullo stesso input.
Le funzioni hash sono una base importante negli algoritmi e nei protocolli crittografici più ampi. Tra loro ci sono gli algoritmi per la firma digitale, quelli MAC dedicati, i protocolli di autenticazione e l'archiviazione di password.