Calcola Sha-1

Calcolatore SHA-1 Online

Genera l’hash SHA-1 per qualsiasi testo o file in modo sicuro e veloce. Lo strumento funziona completamente lato client senza inviare dati ai server.

Guida Completa al Calcolo SHA-1: Cos’è, Come Funziona e Applicazioni Pratiche

SHA-1 (Secure Hash Algorithm 1) è una funzione crittografica di hash sviluppata dalla National Institute of Standards and Technology (NIST) come parte dello standard FIPS PUB 180-1 nel 1995. Nonostante sia stato ufficialmente deprecato per usi crittografici dal 2010 a causa di vulnerabilità teoriche, SHA-1 rimane ampiamente utilizzato in applicazioni non crittografiche come checksum per file, controllo integrità e in sistemi legacy.

Come Funziona l’Algoritmo SHA-1

SHA-1 trasforma un input di lunghezza arbitraria in un output (message digest) di 160 bit (20 byte), tipicamente rappresentato come numero esadecimale di 40 cifre. Il processo coinvolge:

  1. Padding: L’input viene esteso in modo che la sua lunghezza sia congruente a 448 modulo 512
  2. Parsing: Il messaggio viene diviso in blocchi da 512 bit
  3. Inizializzazione buffer: Vengono impostati cinque variabili a 32 bit (A, B, C, D, E)
  4. Elaborazione blocchi: Ogni blocco viene processato attraverso 80 round di operazioni bitwise
  5. Output: I cinque registri vengono concatenati per produrre l’hash finale
Parametro SHA-1 MD5 SHA-256
Lunghezza output (bit) 160 128 256
Lunghezza blocco (bit) 512 512 512
Round di elaborazione 80 64 64
Velocità (MB/s) ~200 ~300 ~150
Sicurezza (2023) Non sicuro Non sicuro Sicuro

Applicazioni Pratiche di SHA-1

Nonostante le sue limitazioni di sicurezza, SHA-1 viene ancora utilizzato in diversi contesti:

  • Controllo integrità file: Verifica che i file non siano stati alterati durante il download (es. distribuzioni Linux)
  • Version control systems: Git utilizza SHA-1 per identificare commit, blob e tree objects
  • Database: Alcuni sistemi legacy utilizzano SHA-1 per hashare password (non raccomandato)
  • Certificati digitali: Alcuni certificati SSL/TLS vecchi utilizzano ancora SHA-1
  • Blockchain: Alcune implementazioni iniziali di blockchain utilizzavano SHA-1

Vulnerabilità e Attacchi a SHA-1

La principale vulnerabilità di SHA-1 è la sua suscettibilità agli attacchi di collisione. Nel 2005, un team di ricercatori cinesi ha dimostrato che era possibile trovare collisioni con complessità 269 invece degli attesi 280. Questo ha portato al famoso attacco SHAttered nel 2017, dove sono stati generati due file PDF diversi con lo stesso hash SHA-1.

Secondo il NIST, SHA-1 non dovrebbe essere utilizzato per:

  • Firme digitali
  • Certificati digitali
  • Applicazioni che richiedono resistenza alle collisioni
  • Sistemi che richiedono sicurezza a lungo termine

Alternative Moderne a SHA-1

Per applicazioni che richiedono sicurezza, si raccomandano i seguenti algoritmi:

Algoritmo Lunghezza Output Sicurezza Velocità Relativa Uso Raccomandato
SHA-256 256 bit Alta Media Crittografia generale, blockchain
SHA-3 (Keccak) Variabile Molto alta Bassa Applicazioni future-proof
BLAKE2 Variabile Alta Molto alta Sistemi ad alte prestazioni
BLAKE3 Variabile Alta Estremamente alta Applicazioni real-time

Come Verificare un Hash SHA-1

Per verificare l’integrità di un file utilizzando SHA-1:

  1. Ottieni l’hash SHA-1 originale (fornito dal mittente)
  2. Calcola l’hash SHA-1 del file ricevuto utilizzando questo strumento
  3. Confronta i due hash:
    • Se identici: il file non è stato alterato
    • Se diversi: il file è stato modificato o corrotto

Su Linux/macOS puoi calcolare l’hash SHA-1 da terminale con:

sha1sum nomefile.txt

Su Windows PowerShell:

Get-FileHash -Algorithm SHA1 nomefile.txt

SHA-1 in Git

Git utilizza SHA-1 estensivamente per:

  • Identificare commit (ogni commit ha un hash SHA-1 unico)
  • Identificare blob (contenuto dei file)
  • Identificare tree (struttura delle directory)
  • Identificare tag

Esempio di hash Git SHA-1:

6f6b7ca124e6e7a77c16ed7695f88ce63d078f94

Nonostante le vulnerabilità teoriche, Git rimane sicuro perché:

  • Gli hash sono usati come identificatori, non per sicurezza
  • La struttura Merkle tree rende difficile gli attacchi
  • Gli attacchi pratici richiederebbero accesso al repository

Domande Frequenti su SHA-1

Q: SHA-1 è ancora sicuro?
A: No, SHA-1 è considerato non sicuro per applicazioni crittografiche dal 2010. Dovrebbe essere evitato per firme digitali, certificati e qualsiasi applicazione che richieda resistenza alle collisioni.

Q: Posso usare SHA-1 per hashare password?
A: Assolutamente no. Per le password si dovrebbero usare algoritmi dedicati come bcrypt, Argon2 o PBKDF2 con un alto numero di iterazioni.

Q: Perché Git usa ancora SHA-1?
A: Git usa SHA-1 come identificatore, non per sicurezza. La transizione a SHA-256 è in corso ma richiede tempo per mantenere la compatibilità con repository esistenti.

Q: Qual è la differenza tra SHA-1 e MD5?
A: Entrambi sono algoritmi di hash non sicuri, ma SHA-1 produce un output più lungo (160 bit vs 128 bit di MD5) e era considerato più sicuro fino a quando non sono state scoperte vulnerabilità in entrambi.

Q: Come posso generare un hash SHA-1 da linea di comando?
A: Su sistemi Unix-like puoi usare sha1sum. Su Windows puoi usare CertUtil -hashfile file.txt SHA1.

Leave a Reply

Your email address will not be published. Required fields are marked *