Come generare hash MD5, SHA-256 e altri
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
- Scegli il tuo algoritmo — seleziona MD5, SHA-1, SHA-256, SHA-384 o SHA-512. Usa SHA-256 salvo motivi specifici.
- Inserisci testo o carica un file — digita o incolla testo, o seleziona un file da hashare.
- 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
- Usa SHA-256 per impostazione predefinita — è sicuro, ampiamente supportato, ed è la raccomandazione standard per i nuovi progetti.
- Mai usare MD5 per la sicurezza — le collisioni MD5 (input diversi che producono lo stesso hash) possono essere generate in pochi secondi. Va bene per checksum non sicuri ma non per ciò che conta in integrità.
- Sala i tuoi hash di password — aggiungere un sale casuale a ogni password prima dell'hashing impedisce gli attacchi con tabelle arcobaleno. Usa bcrypt o Argon2 per l'hashing di password in produzione.
- L'hashing di file funziona localmente — il file è elaborato nel tuo browser, quindi anche i file grandi non lasciano mai il tuo dispositivo.
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.