Tutti gli articoli

Hash Generator: in cosa differiscono MD5, SHA-1 e SHA-256

Il Codice Fiscale italiano e la Partita IVA includono un carattere di controllo calcolato con un algoritmo di checksum ben definito — utile per rilevare un singolo errore di trascrizione, ma non una funzione crittografica: da un Codice Fiscale valido si può risalire facilmente ai dati anagrafici che lo hanno generato, mentre da un hash crittografico come SHA-256 non si può risalire in alcun modo all'input originale. È una distinzione pratica tra "codice di controllo" e "hash", spesso confusa.

Cosa hanno in comune tutte le funzioni hash

La proprietà chiave è il determinismo: gli stessi dati in ingresso danno sempre lo stesso hash. La seconda proprietà è l'effetto valanga: cambiare un solo bit nell'input cambia completamente il risultato, quindi è impossibile capire dall'hash quanto si somiglino due file originali.

Perché MD5 e SHA-1 sono considerati insicuri

Per entrambi gli algoritmi sono stati trovati modi pratici per creare due insiemi di dati diversi con lo stesso hash — una cosiddetta collisione. Questo li rende inadatti dove conta la robustezza crittografica, anche se vengono ancora usati dove serve solo un rapido controllo di integrità.

SHA-256 e la famiglia SHA-2

SHA-256 genera un hash a 256 bit e a oggi non ha collisioni pratiche conosciute. A differenza del carattere di controllo del Codice Fiscale, non permette in alcun modo di risalire ai dati originali — proprio per questo è la scelta comune per pseudonimizzare un identificativo prima di archiviarlo.

A cosa serve

  • Verificare l'integrità di file scaricati confrontandoli con un hash pubblicato.
  • Capire la differenza tra un carattere di controllo reversibile (come nel Codice Fiscale) e un hash crittografico irreversibile.
  • Creare impronte brevi e uniche per grandi quantità di dati.

Perché SHA-3 non ha sostituito SHA-2

SHA-3 è stato scelto come vincitore di un concorso NIST separato nel caso in cui in futuro si scoprisse una vulnerabilità fondamentale in SHA-2 — è un'“assicurazione” basata su una costruzione interna fondamentalmente diversa (Keccak). Poiché finora non sono stati trovati attacchi pratici a SHA-2, SHA-256 resta lo standard predefinito nella maggior parte dei sistemi.

Prova lo strumento