Cos'è SHA-1?
SHA-1 (Secure Hash Algorithm 1) produce un digest a 160 bit (40 caratteri esadecimali). Progettato da NSA e pubblicato da NIST nel 1995 (FIPS 180-1), è diventato popolare per firme digitali, checksum di file e sistemi di controllo versione.
Nota di sicurezza: SHA-1 è compromesso — usa SHA-256, SHA-3 o BLAKE3 per nuovi sistemi.
Come funziona SHA-1
- Riempi il messaggio → lunghezza ≡ 448 (mod 512) bit
- Aggiungi la lunghezza a 64 bit del messaggio originale
- Inizializza cinque parole a 32 bit (A–E)
- Elabora blocchi da 512 bit attraverso 80 operazioni (quattro round)
- Produci il digest finale a 160 bit
Stato della sicurezza
- 2005 — primi attacchi teorici di collisione
- 2017 — Google e CWI Amsterdam hanno dimostrato collisioni reali (PDF “SHAttered”)
- I browser ora non si fidano più dei certificati TLS SHA-1
- NIST ha deprecato SHA-1 per firme digitali nel 2011
Esempi di hash
Input | Hash SHA-1 |
---|---|
Hello World | 0a4d55a8d778e5022fab701977c5d840bbc486d0 |
password | 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 |
test123 | 7288edd0fc3ffcbe93a0cf06e3568e28521687bc |
(vuoto) | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
SHA-1 vs. altre funzioni hash
Algorithm | Output | Security | Speed |
---|---|---|---|
MD5 | 128 bit | ❌ Compromesso | ⚡ Molto veloce |
SHA-1 | 160 bit | ❌ Compromesso | ⚡ Veloce |
SHA-256 | 256 bit | ✅ Sicuro | 🚀 Moderato |
SHA-3 | Variable | ✅ Molto sicuro | 🚀 Moderato |
BLAKE3 | 256 bit | ✅ Sicuro | ⚡ Fulmineo |
Domande Frequenti
SHA-1 è sicuro per le password?
No. Usa invece bcrypt, Argon2 o PBKDF2.
Cos'è una collisione SHA-1?
Una collisione si verifica quando due input diversi generano lo stesso hash. L'attacco “SHAttered” del 2017 ha dimostrato collisioni nel mondo reale.
Perché Git usa ancora SHA-1?
Il design di Git limita l'exploitabilità, ma il progetto sta migrando a SHA-256.