Vai al contenuto principale
FreeOnlineTools Go
Italiano
Spiegazione

Algoritmi di hash spiegati: MD5, SHA-1, SHA-256, SHA-512

Di FreeOnlineTools Team · 2026-08-28 aggiornata

Risposta rapida

MD5 e SHA-1 sono danneggiati e non devono essere utilizzati per scopi sensibili alla sicurezza. SHA-256 è l'impostazione predefinita attuale per controlli di integrità, firme e blockchain. SHA-512 è più veloce su CPU a 64 bit e viene utilizzato dove si desiderano digest più lunghi. Utilizza il nostro generatore di hash per calcolare uno qualsiasi di questi nel tuo browser; utilizzare File Hash per verificare l'integrità del file.

Introduzione

Una funzione hash crittografica accetta un input di dimensione arbitraria e produce un digest di dimensione fissa che è deterministico, veloce da calcolare, impossibile da invertire, resistente alle collisioni e sensibile alle valanghe (una modifica di un bit altera circa la metà dei bit di output). MD5 (128 bit), SHA-1 (160 bit), SHA-256 (256 bit) e SHA-512 (512 bit) sono le quattro funzioni hash più comunemente riscontrate, ma le loro proprietà di sicurezza differiscono notevolmente.

Passo dopo passo

  1. Comprendere le proprietà di una funzione hash

    Un buon hash crittografico è deterministico (lo stesso input produce sempre lo stesso output), output di dimensione fissa, veloce da calcolare, impossibile da invertire (resistenza pre-immagine), impossibile trovare due input con lo stesso output (resistenza alle collisioni) e valanghe (una piccola modifica dell'input capovolge circa il 50% dei bit di output).

  2. Conoscere le dimensioni del digest

    MD5 produce 128 bit (32 caratteri esadecimali). SHA-1 produce 160 bit (40 caratteri esadecimali). SHA-256 produce 256 bit (64 caratteri esadecimali). SHA-512 produce 512 bit (128 caratteri esadecimali). Digest più lunghi riducono la probabilità di collisione ma aumentano le dimensioni di archiviazione.

  3. Scopri perché MD5 e SHA-1 non funzionano

    I ricercatori hanno riscontrato attacchi pratici di collisione contro MD5 (2004) e SHA-1 (2017, attacco SHAttered). Le collisioni consentono a un utente malintenzionato di creare due input diversi con lo stesso hash, violando le firme digitali e le autorità di certificazione. Nessuno dei due dovrebbe essere utilizzato per la sicurezza.

  4. Scegli l'algoritmo giusto

    Per i controlli di integrità dei file in cui la velocità conta più della sicurezza, MD5 o SHA-1 sono ancora comuni. Per qualsiasi utilizzo sensibile alla sicurezza (password, firme, certificati, blockchain), utilizzare SHA-256 o SHA-512. Per l'archiviazione delle password, utilizza un KDF lento come bcrypt, scrypt o Argon2, mai raw SHA-256.

  5. Calcola e verifica gli hash

    Utilizza Hash Generator per eseguire l'hashing del testo con qualsiasi algoritmo o File Hash per calcolare l'hash di un file locale. Confronta il digest risultante con un valore noto per verificarne l'integrità: una differenza di un solo bit significa che il file è stato danneggiato o manomesso.

Esempi

MD5 di "ciao" (128 bit, 32 caratteri esadecimali)

Ingresso: hello

Produzione: 5d41402abc4b2a76b9719d911017c592

SHA-256 di "ciao" (256 bit, 64 caratteri esadecimali)

Ingresso: hello

Produzione: 2cf24dba5fb0d30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

Effetto valanga: un cambio di personaggio

Ingresso: ciao contro Ciao

Produzione: SHA-256('hello') avvia 2cf24dba... mentre SHA-256('Hello') avvia 185f8db3... — completamente diverso nonostante la modifica dell'input di un bit

Problemi comuni

  • Utilizzo di MD5 o SHA-1 per l'hashing delle password: entrambi sono veloci e non funzionanti, rendendo banali gli attacchi di forza bruta e Rainbow Table. Utilizza invece bcrypt, scrypt o Argon2.
  • Confondere l'hashing con la crittografia: l'hashing è unidirezionale e irreversibile; la crittografia è bidirezionale. Non puoi "decifrare" un hash: puoi solo confrontare gli hash.
  • Ignorando gli attacchi di estensione della lunghezza: MD5, SHA-1, SHA-256 e SHA-512 sono tutti vulnerabili agli attacchi di estensione della lunghezza se utilizzati come MAC. Utilizza HMAC-SHA256 per l'autenticazione dei messaggi.
  • Confronto degli hash con == invece di un confronto a tempo costante: le fughe di tempo consentono agli aggressori di recuperare gli hash byte per byte. Utilizza un confronto in tempo costante nel codice di sicurezza.

Suggerimenti

  • Il valore predefinito è SHA-256 per i nuovi sistemi: è veloce, ampiamente supportato e non ha alcun attacco di collisione pratico a partire dal 2026.
  • Per l'archiviazione delle password, utilizza bcrypt con un fattore di lavoro pari a 12+ (o Argon2id con 64 MB di memoria), mai raw SHA-256, che è troppo veloce rispetto alle GPU.
  • Quando verifichi i download dei file, confronta sia il nome dell'algoritmo che il digest: un hash SHA-1 non ha senso se l'editore intendeva solo SHA-256.
  • Utilizza il nostro strumento File Hash per calcolare SHA-256 di file di grandi dimensioni localmente senza caricarli: trasmette il file tramite Web Crypto API.

Strumenti correlati

Guide correlate

Riferimenti