Come generare hash MD5, SHA-256 e altri

· 4 min di lettura

L'hashing converte qualsiasi input — una password, un file, un messaggio — in una stringa di lunghezza fissa. Lo stesso input produce sempre lo stesso hash, ma il minimo cambiamento nell'input produce un hash completamente diverso. Questo rende l'hashing essenziale per la verifica di integrità, l'archiviazione di password e le firme digitali.

Come funziona l'hashing

Una funzione di hash prende un input di qualsiasi dimensione e produce un output di dimensione fissa:

Input Hash SHA-256 (primi 16 caratteri)
hello 2cf24dba5fb0a30e...
Hello 185f8db32271fe25...
hello! ce06092fb948d9ff...

Nota che un solo carattere modificato (h minuscola in H maiuscola) o aggiunto cambia completamente l'hash. È ciò che si chiama effetto valanga.

Algoritmi di hash comuni

Algoritmo Lunghezza Stato Da usare per
MD5 32 caratteri Rotto (non sicuro) Checksum legacy, usi non sicuri
SHA-1 40 caratteri Rotto (non sicuro) Solo sistemi legacy
SHA-256 64 caratteri Sicuro Integrità di file, firme digitali
SHA-512 128 caratteri Sicuro Applicazioni ad alta sicurezza

SHA-256 è lo standard attuale per la maggior parte degli usi. MD5 e SHA-1 dovrebbero essere usati solo per interagire con sistemi legacy che li richiedono.

Come generare un hash

  1. Scegli il tuo algoritmo — seleziona MD5, SHA-1, SHA-256, SHA-384 o SHA-512. Usa SHA-256 salvo motivi specifici.
  2. Inserisci testo o carica un file — digita o incolla testo, o seleziona un file da hashare.
  3. Copia l'hash — il risultato è una stringa esadecimale utilizzabile per verifica, archiviazione o confronto.

Usi pratici

Verifica di integrità del file — scarica un file e confronta il suo hash con quello pubblicato ufficialmente. Se corrispondono, il file è autentico e non corrotto.

Archiviazione di password — le applicazioni memorizzano hash di password, non le password stesse. Quando ti connetti, il tuo input viene hashato e confrontato con l'hash memorizzato.

Deduplicazione di dati — hasha grandi file per determinare rapidamente se sono identici senza confrontarli byte per byte.

HMAC per la sicurezza API — usa HMAC (hash con una chiave segreta) per firmare le richieste API e assicurarti che non siano state alterate in transito.

Consigli

Domande frequenti

Qual è la differenza tra MD5, SHA-1 e SHA-256?

MD5 produce un hash di 128 bit (32 caratteri hex), SHA-1 produce 160 bit (40 caratteri) e SHA-256 produce 256 bit (64 caratteri). MD5 e SHA-1 sono considerati crittograficamente rotti. SHA-256 è attualmente sicuro e raccomandato per la verifica di integrità e la sicurezza.

Si può invertire un hash per ritrovare il dato originale?

No. Le funzioni di hash sono a senso unico per progettazione. Non puoi invertire matematicamente un hash verso il suo input. Tuttavia, le password comuni possono essere ritrovate in tabelle precalcolate (rainbow table), da cui l'importanza di salare le password prima dell'hashing.

Cos'è HMAC?

HMAC (Hash-based Message Authentication Code) combina una funzione di hash con una chiave segreta. Verifica sia l'integrità che l'autenticità dei dati — provando che non siano stati alterati e che siano stati prodotti da qualcuno che conosce la chiave segreta.

I miei dati vengono inviati a un server?

No. Tutto l'hashing gira nel tuo browser con l'API Web Crypto. I tuoi testi e file non lasciano mai il tuo dispositivo.