logo RankiaItalia

Cos’è la funzione hash e come funziona

Una funzione hash converte qualsiasi dato in un codice alfanumerico di lunghezza fissa e non reversibile. SHA-256 produce 64 caratteri, mentre MD5 e SHA-1 non sono più sicuri. Serve a proteggere le password, verificare i file e collegare i blocchi della blockchain.
Funzione hash: come funziona e a cosa serve

Indice

Ogni volta che scarichi un file, accedi a un conto online o sposti criptovalute, dietro le quinte lavora una funzione hash: trasforma qualsiasi dato in un codice di lunghezza fissa che funziona come un’impronta digitale. Se cambia un solo bit dell’originale, quel codice diventa irriconoscibile.

In questa guida vediamo cos’è una funzione hash, come funziona passo a passo, quali proprietà la rendono affidabile, quali algoritmi si usano oggi e perché è il meccanismo che tiene insieme i blocchi di una blockchain. Vuoi investire in criptovalute dopo aver capito come funzionano blockchain, wallet e transazioni on-chain? Con eToro puoi accedere a Bitcoin, Ethereum e altre crypto da una piattaforma multi-asset, iniziando anche con importi contenuti.

Cos’è la funzione hash

La funzione hash è un algoritmo matematico che prende in ingresso un dato di qualsiasi dimensione e restituisce in uscita una stringa alfanumerica di lunghezza sempre identica. Quella stringa si chiama valore hash o, in termini tecnici, digest.

Il punto non ovvio è che la lunghezza dell’output non dipende in alcun modo da quella dell’input. La parola «hash» e un archivio da 10 GB, passati attraverso SHA-256, producono entrambi 64 caratteri esadecimali.

Il digest viene spesso chiamato fingerprint, impronta digitale, e l’analogia funziona: identifica un dato in modo praticamente univoco senza rivelarne il contenuto. Chi vede solo l’hash osserva una sequenza illeggibile.

Il termine risale a oltre settant’anni fa. Nel gennaio 1953 H. P. Luhn, ingegnere IBM, lo usò in un memorandum interno riprendendo il verbo inglese to hash, «tritare e mescolare»: ci vollero circa dieci anni perché entrasse nell’uso comune.

Hash, hashing e valore hash: tre termini da non confondere

  • Funzione hash: l’algoritmo che esegue il calcolo, per esempio SHA-256 o MD5.
  • Hashing: il processo di applicare quella funzione a un dato.
  • Valore hash (o digest): il risultato, la stringa di lunghezza fissa che esce dal calcolo.

Come funziona una funzione hash passo a passo

Come funziona una funzione hash in quattro passaggi

Il calcolo non è una scatola nera: segue sempre la stessa sequenza, qualunque sia l’algoritmo scelto.

  1. Preparazione dell’input. Il dato viene convertito in bit e completato con un padding, perché gli algoritmi lavorano su blocchi di dimensione fissa: 512 bit in SHA-256, 1.024 in SHA-512.
  2. Divisione in blocchi. La sequenza viene spezzata in blocchi uguali, elaborati uno dopo l’altro.
  3. Trasformazioni matematiche. Ogni blocco passa attraverso decine di round di rotazioni di bit, permutazioni e somme modulari che rendono l’originale irriconoscibile.
  4. Combinazione nello stato interno. I risultati parziali si accumulano in una memoria di lavoro. SHA-2 usa una funzione di compressione blocco per blocco; SHA-3 adotta la costruzione a spugna, in cui l’input viene prima «assorbito» e poi «spremuto».
  5. Output. Resta il digest, sempre della stessa lunghezza.

Il processo è deterministico e a senso unico: veloce da calcolare, impossibile da invertire. È come macinare i chicchi di caffè: dalla polvere non si torna al chicco.

Le proprietà di una funzione hash crittografica

Non tutte le funzioni hash servono per la sicurezza. Quelle crittografiche, le uniche che si usano in blockchain, firme digitali e gestione delle password, devono soddisfare cinque requisiti.

  • Determinismo: lo stesso input produce sempre lo stesso digest. È ciò che permette di validare un dato riapplicando il calcolo.
  • Unidirezionalità: dal digest non si può ricostruire l’input. Questa proprietà è detta anche resistenza alla preimmagine.
  • Resistenza alle collisioni: trovare due input diversi con lo stesso digest deve essere computazionalmente impraticabile.
  • Effetto valanga: una minima variazione dell’input cambia il digest per intero.
  • Efficienza: il calcolo deve restare rapido anche su file di grandi dimensioni.

L’effetto valanga: un carattere cambia tutto

Basta una maiuscola per ottenere un digest completamente diverso. Questi sono valori SHA-256 reali, calcolati sulle stringhe indicate.

InputSHA-256 (64 caratteri)
funzione hash64446a190c169b39e4326ba481a598777b19842d03af5df066f9c95d2b41c89e
Funzione hash7faab94fc5292210baaecab370d2b5a4c865dc85daca9e8aed3e88045fb27b59
La canzone dell’estated8032d5aa007c4392a76906539386a4eaf7ec23bb05b5b660a63cb9b07420938

Le prime due stringhe differiscono per una sola lettera, eppure i digest non hanno nulla in comune. Confrontare due hash non dice nulla su quanto si somiglino gli input di partenza.

Collisioni: perché nessuna funzione hash ne è del tutto priva

Si legge spesso che una funzione hash è «priva di collisioni». Non è esatto, ed è un’imprecisione che vale la pena chiarire.

Gli input possibili sono infiniti, mentre i digest di lunghezza fissa sono in numero finito: per il principio dei cassetti, due input diversi con lo stesso hash esistono per forza. Con SHA-256 i digest possibili sono 2256, un numero di 78 cifre.

La proprietà corretta si chiama quindi resistenza alle collisioni: trovarne una deve costare più risorse di quante siano disponibili. Su SHA-256 nessuno ci è mai riuscito. Su MD5 e SHA-1, invece, ci sono riusciti.

Quali sono i principali algoritmi hash

Ogni algoritmo produce un digest di lunghezza propria e si trova in uno stato di sicurezza diverso. Il più usato oggi è SHA-256, lo standard adottato da Bitcoin.

AlgoritmoDigestCaratteri hexStato
MD5128 bit32Rotto: non usare per la sicurezza
SHA-1160 bit40Deprecato: ritiro NIST entro il 2030
SHA-256 (famiglia SHA-2)256 bit64Standard attuale
SHA-3 (Keccak)256 bit64Alternativa con struttura diversa
Sulla stessa stringa funzione hash la differenza si vede a occhio: 32 caratteri con MD5, 128 con SHA-512. Accanto a questi algoritmi sopravvive RIPEMD-160, che produce 160 bit e ha oggi un ruolo molto specifico, la generazione degli indirizzi Bitcoin.

Perché MD5 e SHA-1 non sono più considerati sicuri

Sicurezza degli algoritmi hash: da MD5 a SHA-3

Entrambi sono caduti sotto attacchi di collisione: oggi è possibile costruire due file diversi con lo stesso digest e far quindi passare un documento contraffatto per l’originale.

Nel dicembre 2022 il NIST, l’istituto di standardizzazione statunitense, ha annunciato il ritiro di SHA-1 entro il 31 dicembre 2030, raccomandando la migrazione verso le famiglie SHA-2 e SHA-3. MD5 era già fuori gioco da anni.

Questo non significa che non li incontrerai più. MD5 resta diffuso come checksum per verificare che un download non sia corrotto e, in quel ruolo, dove non c’è un attaccante da cui difendersi, continua a fare il suo lavoro.

A cosa serve la funzione hash: le applicazioni principali

L’hashing risolve sempre lo stesso problema in contesti diversi: verificare qualcosa senza doverlo conservare in chiaro.

Password e salt: come proteggono le credenziali

Un servizio ben progettato non conserva la tua password, ma il suo digest. Quando accedi, ricalcola l’hash di quello che digiti e lo confronta con il valore archiviato.

Da qui una conseguenza pratica: in caso di violazione del database, l’attaccante ottiene digest, non password. Per lo stesso motivo un servizio serio non può inviarti la vecchia password per email, perché non la possiede: può solo permetterti di impostarne una nuova.

A ogni password si aggiunge poi un salt, una stringa casuale diversa per ogni utente, prima di calcolarne l’hash. Serve a evitare che due utenti con la stessa password producano lo stesso digest e a rendere inutili le rainbow table, gli archivi di hash precalcolati.

Verifica dell’integrità dei file e firme digitali

Quando un sito pubblica il valore hash di un file scaricabile ti sta dando lo strumento per controllarlo: se il digest coincide con quello dichiarato, il file è arrivato intatto.

Lo stesso meccanismo regge le firme digitali e i certificati TLS che proteggono le connessioni HTTPS. Non si firma il documento intero, ma il suo digest: molto più corto e altrettanto univoco. Modificare una virgola invalida la firma.

Tabelle hash e gestione dei database

Fuori dalla crittografia l’hashing serve a cercare in fretta. Le tabelle hash usano il digest di una chiave per calcolare direttamente la posizione del dato in memoria, senza scorrere l’intero archivio.

Qui la velocità conta più della resistenza agli attacchi, quindi si usano funzioni non crittografiche e molto più leggere, come MurmurHash o xxHash.

La funzione hash nella blockchain: come collega i blocchi

Schema di come funziona la funzione hash nella blockchain

Qui l’hash smette di essere uno strumento di supporto e diventa la struttura portante. Ogni blocco di una blockchain contiene tre elementi:

  • l’hash del blocco precedente,
  • i dati delle transazioni che include,
  • il proprio hash, calcolato su tutto il resto.

Il primo elemento è quello che crea la catena. Poiché l’hash di ogni blocco entra nel calcolo del successivo, manomettere una transazione vecchia cambia tutti gli hash a valle e la manipolazione si rileva subito.

Un esempio verificabile: il primo blocco di Bitcoin, minato il 3 gennaio 2009, ha come hash 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f. I dieci zeri iniziali non sono un caso: sono la prova del lavoro svolto per trovarlo.

Hash e mining: il ruolo della Proof of Work

La Proof of Work usata da Bitcoin consiste nel cercare un hash di blocco che inizi con un certo numero di zeri. Non esistono scorciatoie: i miner provano miliardi di combinazioni al secondo modificando un valore chiamato nonce, finché il digest non rispetta il bersaglio.

Nel blocco genesi quel valore era 2.083.236.893 (vedi anche come minare Bitcoin).

Chi trova per primo un hash valido aggiunge il blocco e incassa la ricompensa, che si dimezza circa ogni quattro anni con l’halving di Bitcoin: dopo quello di aprile 2024 vale 3,125 BTC per blocco.

Come funziona Ethereum è invece cambiato nel settembre 2022, quando la rete ha abbandonato il mining per la Proof of Stake: l’algoritmo impiegato è Keccak-256, non SHA-256.

Chi valuta lo staking criptovalute sta operando proprio su quel modello, dove si convalida vincolando capitale invece che potenza di calcolo.

Indirizzi dei wallet: SHA-256 e RIPEMD-160

Un indirizzo Bitcoin non è la tua chiave pubblica: è il risultato di due funzioni hash applicate in sequenza a quella chiave, prima SHA-256 e poi RIPEMD-160.

Il doppio passaggio accorcia l’indirizzo e aggiunge uno strato di protezione, perché la chiave pubblica resta nascosta finché non spendi i fondi. Se stai valutando dove custodire le monete, i migliori wallet per la custodia di Bitcoin gestiscono questa derivazione automaticamente.

Hash e smart contract

Anche gli smart contract si appoggiano all’hashing. Ogni contratto ha un digest derivato dal proprio codice: se il codice cambia, cambia l’hash e la versione precedente non è più valida.

Il vantaggio è che permette di rendere pubblico un accordo senza pubblicarne i contenuti sensibili. Nomi, indirizzi e dati dei partecipanti restano fuori dalla catena; sulla catena finisce solo il loro digest, che ne prova esistenza e integrità. Reti come Ethereum, Solana e TRON adottano questo schema.

Come verificare un hash di transazione su blockchain

Quando sposti criptovalute l’hash smette di essere teoria: l’ID della transazione è un hash, comunemente chiamato tx hash. Copiandolo in un explorer pubblico puoi controllare cosa è successo davvero.

I due explorer più usati sono Etherscan per Ethereum e Blockchain.com per Bitcoin. Incollando il tx hash ottieni:

  • lo stato della transazione, in attesa o confermata;
  • data, ora e blocco in cui è stata registrata;
  • gli indirizzi coinvolti e l’importo trasferito;
  • la commissione di rete pagata.

Il flusso pratico è sempre lo stesso: esegui il trasferimento, copi il tx hash dalla cronologia dell’exchange, lo incolli nell’explorer e leggi il numero di conferme. È il modo più rapido per distinguere un ritardo di rete da un errore vero, come rete sbagliata, indirizzo errato o fee troppo bassa.

Non tutte le piattaforme rendono il tx hash facile da recuperare, e questo è un criterio concreto da tenere presente quando valuti come scegliere un exchange sicuro: la tracciabilità delle operazioni fa parte della trasparenza del servizio.

Differenza tra hashing e crittografia

Hashing e crittografia si somigliano, perché entrambi rendono un dato illeggibile, ma rispondono a esigenze diverse. La distinzione sta nella reversibilità.

CaratteristicaCrittografiaHashing
DirezionalitàBidirezionale: i dati si cifrano e si decifrano con una chiave.Unidirezionale: dal digest non si torna all’originale.
ObiettivoProteggere la riservatezza durante la trasmissione o l’archiviazione.Verificare l’integrità e identificare un dato in modo univoco.
OutputDati cifrati, di lunghezza variabile.Stringa di lunghezza fissa, qualunque sia l’input.
Uso comuneComunicazioni sicure, protezione di dati sensibili.Verifica dei file, password, transazioni blockchain.

La regola pratica è semplice: si cifra ciò che deve tornare leggibile, si fa l’hash di ciò che serve soltanto confrontare. Una password si conserva come hash, un messaggio si conserva cifrato.

In sintesi, la funzione hash trasforma qualsiasi dato in un digest di lunghezza fissa, deterministico e non reversibile. Le proprietà che la rendono affidabile sono determinismo, unidirezionalità, resistenza alle collisioni, effetto valanga ed efficienza: SHA-256 è oggi lo standard di riferimento, mentre MD5 e SHA-1 sono fuori uso per scopi di sicurezza.

Sul piano operativo la ricaduta è concreta, perché il tx hash è lo strumento per verificare ogni movimento on-chain e leggerlo in un explorer è il primo controllo da fare quando un trasferimento sembra bloccato. Se stai partendo da zero, conviene capire prima come investire in criptovalute e poi muovere capitale.

Domande frequenti sulla funzione hash