Che cos'è la funzione hash unidirezionale? definizione e significato

Una funzione hash unidirezionale è una funzione matematica che genera un'impronta digitale dell'input, ma non è possibile tornare all'input originale. Se l'input è lo stesso, l'hash è sempre lo stesso, se cambia del tutto, anche di un carattere, l'hash di output è completamente diverso. Un hash può essere utilizzato per verificare che l'input A sia identico all'input B ma non può essere utilizzato per recuperare l'input dall'output come con un'altra funzione matematica, la crittografia.

Technipages spiega la funzione hash unidirezionale

L'output di un hash unidirezionale è sempre della stessa lunghezza, indipendentemente dalla lunghezza dell'input. Ad esempio, l'output per l'algoritmo di hashing md5 è sempre di 32 caratteri se rappresentato in esadecimale, questo è vero se l'input è lungo un carattere o la lunghezza dell'intera opera di Shakespeare.

Un hash è l'ideale per verificare che due cose siano identiche, questo ha due usi principali. La "verifica dell'integrità" viene utilizzata per verificare che un file che è stato scaricato sia identico a quello sul server confrontando un hash noto del file del server con un hash del file scaricato.


Gli algoritmi di hashing vengono utilizzati anche nei database per verificare che l'hash della password inviata corrisponda all'hash memorizzato. Ciò significa anche che se un hacker ottiene l'accesso non autorizzato al database, non ottiene le password stesse, ma piuttosto i propri hash che non possono essere utilizzati per accedere direttamente.

La lunghezza dell'output di un algoritmo di hashing stabilisce dei limiti su quanti possibili output ci sono e come tale descrive la sua forza contro gli "attacchi di collisione" di hash. Gli attacchi di collisione sono quelli in cui due input diversi generano lo stesso output. È piuttosto difficile trovare due input casuali che generano lo stesso output, è significativamente più difficile trovare una collisione per un singolo output hash specifico.

Usi comuni della funzione hash unidirezionale

  • Esistono due tipi di algoritmi di hashing unidirezionali, veloce e lento, veloce viene utilizzato per la verifica dei file e lento per l'hashing delle password.
  • L'input di un algoritmo di hashing unidirezionale non può essere determinato analizzando l'output o eseguendolo tramite un'altra funzione.
  • Quando un hacker ha un elenco di hash di password da un database rubato, calcola quale algoritmo di hashing unidirezionale è stato utilizzato e quindi indovina come quante più password possibili, quando hanno un output che corrisponde a una voce nel database sanno che l'input è quello dell'utente parola d'ordine.

Errori comuni della funzione hash unidirezionale

  • Un algoritmo di hashing unidirezionale è un tipo di crittografia e può essere utilizzato per archiviare in modo sicuro i dati per il recupero in un secondo momento con l'uso di una password e un'altra funzione.