Strumenti per sviluppatori

Generatore di Hash e Checksum

Ottieni MD5, SHA-1, SHA-256, SHA-384 e SHA-512 per testo e file contemporaneamente. Verifica un file scaricato rispetto alla sua checksum ufficiale per assicurarti che non sia stato manomesso. Tutto locale, nulla esce dal tuo browser.

5 algoritmi contemporaneamente Checksum per testo e file Locale, zero caricamento Risultati istantanei
Caratteri Byte UTF-8

CARATTERISTICHE

Tutti e cinque gli hash in una sola pagina

Da impronte veloci a firme sicure — tutti gli hash di cui hanno bisogno sviluppatori, operatori e verifiche dei download.

01

Cinque algoritmi

MD5, SHA-1, SHA-256, SHA-384 e SHA-512 mostrati insieme con le lunghezze dei bit di output — non serve più passare tra strumenti.

02

Calcolo in tempo reale

Hash del testo mentre digiti, nessun pulsante da premere. Risultati in caratteri spaziati — clicca una riga per copiare.

03

Verifica integrità file

Trascina un programma di installazione, un'immagine disco o un archivio e confrontalo con la checksum ufficiale per confermare un download non manomesso.

04

Locale, zero caricamento

La famiglia SHA usa la Web Crypto API integrata nel browser. Testo e file non abbandonano mai la tua macchina — contenuti sensibili sono al sicuro.

05

Conforme UTF-8

Il testo viene sottoposto a hashing come byte UTF-8, quindi i risultati corrispondono esattamente a md5sum, md5() di PHP e hashlib di Python.

06

Copia con un clic

Copia ogni hash singolarmente o tutti in formato checksum standard, pronto per essere incollato in un terminale.

Cosa devi sapere sugli hash

L'idea è semplice, ma utilizzare quello sbagliato per un compito sbagliato è un vero errore di sicurezza.

Cosa sono esattamente MD5 e SHA-1?

MD5 (Message-Digest Algorithm 5) è stato progettato da Ronald Rivest al MIT e pubblicato nel 1992 come RFC 1321, producendo un digest fisso di 128 bit (32 caratteri esadecimali) come successore di MD4. SHA-1 è stato progettato dalla National Security Agency degli Stati Uniti e pubblicato nel 1995 come standard federale FIPS 180-1, producendo 160 bit. Entrambi sono diventati gli algoritmi di hash più utilizzati nei decenni successivi: impiegati per i checksum dei file, l'archiviazione delle password, le firme digitali e gli ID dei commit Git. Nota: producono ancora digest corretti oggi; "non sicuro" significa che la loro resistenza alle collisioni è compromessa, non che il loro output sia errato.

Hashing, crittografia e codifica sono la stessa cosa?

No, risolvono problemi diversi. La codifica (come Base64 o la codifica URL) è una trasformazione di formato reversibile che chiunque può annullare, senza offrire alcuna sicurezza. La crittografia è reversibile con una chiave: il testo in chiaro diventa testo crittografato e la chiave corretta lo decrittografa. L'hashing è unidirezionale, non ha chiave e l'originale non può essere recuperato dal digest; viene utilizzato per impronte digitali, controlli di integrità e firme. Due idee sbagliate comuni: considerare Base64 come "crittografia" e dire che una password è stata "crittografata con MD5": quello è hashing, inoltre un modo non sicuro per archiviare le password.

Perché un hash non può essere invertito fino all'originale?

Un hash è una funzione unidirezionale: input di qualsiasi lunghezza viene compresso in un digest di lunghezza fissa, eliminando la maggior parte delle informazioni. Proprio come non puoi ricostruire una frase dal conteggio delle sue parole, l'originale non può essere derivato dal digest. Gli algoritmi sicuri sono specificamente progettati per rendere tale inversione computazionalmente impossibile.

MD5 e SHA-1 sono ancora utilizzabili?

Per verificare se un file è stato corrotto accidentalmente durante il trasferimento: sì, qualsiasi modifica di un byte solitamente altera l'MD5. Ma mai per la sicurezza: esistono attacchi pratici alle collisioni per entrambi (i ricercatori possono creare due file diversi con lo stesso MD5 sotto il loro controllo). Usa SHA-256 o superiore per le password, le firme e i certificati.

Perché il mio hash differisce da quello di un altro strumento per lo stesso testo?

Tre soliti motivi: ① diversa codifica dei caratteri (questo strumento utilizza sempre UTF-8; strumenti più vecchi possono usare GBK o Latin-1); ② una nuova linea finale: echo da riga di comando ne aggiunge una per impostazione predefinita (usa echo -n); ③ uno spazio superfluo o un carattere invisibile durante la copia. Gli hash sono sensibili a ogni singolo byte, quindi un byte sbagliato cambia completamente il risultato.

Perché le password non possono essere archiviate come MD5/SHA-256 in chiaro?

Gli hash comuni sono veloci. Con una tabella hash trapelata, gli attaccanti possono provare miliardi di tentativi al secondo e le rainbow tables cercano al volo le password comuni. Le password necessitano di algoritmi lenti e intensivi in termini di memoria (bcrypt, scrypt, Argon2) con un sale univoco per ogni password, rendendo la forza bruta proibitivamente costosa.

Come verifico l'integrità di un file scaricato?

Trova il checksum pubblicato sul sito ufficiale (di solito SHA-256), trascina il file scaricato nella scheda "Checksum file" qui e incolla il valore ufficiale nella casella sopra i risultati. Lo strumento rileva l'algoritmo in base alla lunghezza del valore e evidenzia la riga corrispondente in verde quando i byte del file sono esattamente quelli rilasciati dall'editore; rosso significa danneggiamento o sostituzione tramite attacco man-in-the-middle — non eseguire il file.

Quale dei cinque algoritmi usare

Scegli in base allo scenario. Gli algoritmi più recenti producono digest più lunghi, sono più resistenti agli attacchi e costano leggermente di più in termini di tempo di calcolo.

Algoritmo Introduzione Lunghezza output Sicurezza Uso tipico
MD5 1992 128 bit (32 caratteri) Non sicuro; collisioni pratiche Impronte non crittografiche, deduplicazione, compatibilità legacy
SHA-1 1995 160 bit (40 caratteri) Collisioni pratiche dal 2017 ID della cronologia Git e altri sistemi legacy; non adatto per nuovi usi crittografici
SHA-256 2001 256 bit (64 caratteri) Sicuro oggi Checksum file, firme, certificati TLS, blockchain — l'impostazione predefinita universale
SHA-384 2001 384 bit (96 caratteri) Sicuro SHA-512 troncato per regole di conformità che richiedono 384 bit
SHA-512 2001 512 bit (128 caratteri) Sicuro Firme ad alta affidabilità; spesso più veloce di SHA-256 su CPU a 64 bit

"Sicuro" significa che ad oggi non esistono collisioni pratiche pubbliche. Per l'archiviazione di password usa bcrypt/Argon2, indipendentemente dalla scelta dell'hash.

Checksum: come verificare effettivamente un file scaricato

A cosa serve la stringa MD5 o SHA-256 sulla pagina di download, come confrontarla e con cosa confrontarla — tutto in questa sezione.

Perché verificare

Il file sul tuo disco non è necessariamente lo stesso sul server. Un confronto del checksum di dieci secondi protegge da tre tipi di problemi:

Danneggiamento durante il trasporto

I file di grandi dimensioni durante i download riprendibili su reti instabili accumulano byte strani in modo sorprendentemente frequente; risolvere i problemi di un installer danneggiato richiede molto più di dieci secondi.

Mirror non sincronizzati

Molti download provengono in realtà da mirror o CDN, dove il ritardo di sincronizzazione o i malfunzionamenti della cache possono fornirti una versione obsoleta — o un file incompleto.

Manomissione deliberata

Quando una fonte di download viene violata o una rete pubblica viene intercettata, i file possono essere infiltrati con backdoor. Nel 2016 il sito Linux Mint è stato hackerato e i link di download sono stati sostituiti con un ISO infetto da backdoor — la prima reazione del progetto è stata esortare tutti a controllare il checksum.

Cos'è un checksum

L'editore calcola l'hash del file sul proprio server e pubblica il risultato sulla pagina di download; dopo averlo scaricato, tu lo calcoli nuovamente localmente. Se le due stringhe corrispondono esattamente, i byte del file sono identici a quelli rilasciati dall'editore: né corrotti né modificati. Il controllo è sensibile a ogni singolo byte: anche una sola variazione cambierà completamente il valore. In generale, i checksum includono anche schemi più semplici come CRC32, che serve solo a rilevare corruzioni accidentali, mentre gli hash crittografici come MD5/SHA sono in grado di contrastare anche manomissioni deliberate.

Verifica un file in tre semplici passaggi

  1. 1
    Ottieni il checksum ufficiale

    Nella pagina di download, trova il valore MD5/SHA-256 pubblicato (spesso etichettato come "checksum" oppure fornito come file companion .sha256) e copia l'intera stringa.

  2. 2
    Carica il file e incolla

    Passa alla scheda "File checksum" qui sopra, carica il file scaricato e incolla il checksum nella casella sopra i risultati.

  3. 3
    Leggi l'esito dal colore

    Lo strumento rileva l'algoritmo in base alla lunghezza del valore: verde significa che il file corrisponde esattamente alla versione ufficiale e è sicuro da usare; rosso indica che potrebbe essere corroretto o manomesso — non eseguirlo.

Come leggere i checksum sui siti ufficiali

Le pagine di download mostrano i checksum in molti formati, ma tutti si riducono a due elementi: il valore hash e il nome del file. Questi tre schemi sono i più comuni: quando incolli, prendi solo la parte dell'hash (lo strumento ignora automaticamente spazi e interruzioni di riga):

# 1. Riga singola: solo il valore
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

# 2. Formato sha256sum: valore + due spazi + nome file (un manifesto SHA256SUMS contiene molte righe di questo tipo)
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a  ubuntu-24.04.iso

# 3. Formato BSD: Algoritmo (nome file) = valore
SHA256 (ubuntu-24.04.iso) = a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

MD5 o SHA-256

Verifica quello fornito dal sito ufficiale, ma se puoi scegliere: MD5 è del tutto adeguato per rilevare corruzioni accidentali durante il trasferimento (qualsiasi variazione casuale modificherà quasi sempre l'MD5). Per contrastare manomissioni deliberate — software di sicurezza, certificati, pacchetti firmati — hai bisogno di SHA-256 o più forte, perché attacchi di collisione pratici permettono a malintenzionati di creare due file diversi con lo stesso MD5. Questa vicenda è raccontata nella "storia della sicurezza" più in basso.

Verifica direttamente dalla riga di comando

Su Linux e macOS, gli strumenti per i checksum accettano l'opzione -c per verificare automaticamente un intero manifesto, senza bisogno di confronto manuale. I comandi integrati di Windows calcolano solo il valore, che dovrai poi confrontare tu stesso con la stringa ufficiale.

Ambiente Comando di verifica
Linux sha256sum -c SHA256SUMS (verifica ogni file elencato nel manifesto)
macOS shasum -a 256 -c checksum.txt
Verifica veloce di un singolo valore echo "valore ufficiale nomefile" | sha256sum -c - (stampa OK se la verifica riesce)
Windows Calcola il valore con Get-FileHash <file> -Algorithm SHA256, poi confrontalo con il valore ufficiale

Breve storia della sicurezza: come è stato violato MD5

MD5 non ha fallito da un giorno all'altro: dalla prima vulnerabilità accademica ai certificati contraffatti in uso, ci sono voluti due decenni.

  1. 1992

    Pubblicazione di MD5

    Ronald Rivest ha rilasciato l'MD5 nella RFC 1321. Veloce, semplice da implementare e produce sempre un digest di 128 bit, è rapidamente diventato lo standard di fatto per i checksum dei file e l'archiviazione delle password — ed era considerato crittograficamente sicuro.

  2. 2004

    Il team di Wang Xiaoyun rivela le collisioni MD5 complete

    Al CRYPTO 2004, un team guidato dalla matematica cinese Wang Xiaoyun ha dimostrato un attacco di collisione completo sull'MD5 — costruendo due file con contenuti diversi ma lo stesso hash (inizialmente in circa un'ora su un supercomputer IBM P690; i miglioramenti successivi hanno ridotto il tempo a secondi su hardware ordinario). La resistenza alle collisioni promessa per l'MD5 era svanita; la standing ovation che ne seguì è diventata uno dei momenti più famosi della crittografia.

  3. 2008

    Certificati falsificati colpiscono l'internet reale

    Marc Stevens, Alexander Sotirov e altri hanno utilizzato una collisione con prefisso scelto per falsificare un certificato intermedio della CA affidabile dai browser: certificati con prefissi diversi trasportavano la stessa firma. Un attaccante poteva quindi rilasciare certificati HTTPS "validi" per qualsiasi sito falso. Le autorità di certificazione hanno smesso di rilasciare certificati MD5 poco dopo.

  4. 2012

    Il malware Flame attacca Windows tramite MD5

    Il malware Flame, sponsorizzato dallo stato, ha utilizzato una collisione MD5 per far firmare a Microsoft l'autorità di licenza server terminal un certificato di firma per il codice falsificato, permettendogli di diffondersi in Medio Oriente travestito da aggiornamento firmato da Microsoft. È stato il primo attacco nel mondo reale che utilizza una collisione MD5; Microsoft ha revocato il certificato con una patch di emergenza.

  5. 2017

    SHAttered: SHA-1 cade

    Google e l'istituto olandese CWI (Marc Stevens et al.) hanno pubblicato due file PDF diversi con lo stesso hash SHA-1 — a un costo di circa 6.500 anni CPU e 110 anni GPU. I browser hanno perso fiducia nei certificati SHA-1 poco dopo, e le piattaforme Git hanno accelerato la loro migrazione lontano da esso. L'era dei 160 bit era finita.

Sfumatura importante: un attacco di collisione non "cracka" l'hash di nessun file esistente — costruisce due file specifici che restituiscono lo stesso valore. Ma per le firme e i certificati, questo è già sufficiente per una falsificazione fatale.

Hashing dalla riga di comando

Quando un browser non è a portata di mano, ogni sistema operativo include un comando integrato (mostrato SHA-256).

Ambiente Comando
Linux / macOS sha256sum nomefile (su macOS: shasum -a 256 nomefile)
Windows PowerShell Get-FileHash nomefile -Algorithm SHA256
Windows CMD certutil -hashfile nomefile SHA256

Hashing nel codice

Esempi minimi in quattro linguaggi comuni quando scrivi script o integri API.

JavaScript
async function sha256Hex(data) {
  const bytes = typeof data === "string"
    ? new TextEncoder().encode(data)
    : new Uint8Array(data);
  const digest = await crypto.subtle.digest("SHA-256", bytes);
  return [...new Uint8Array(digest)]
    .map((b) => b.toString(16).padStart(2, "0"))
    .join("");
}

// Text
console.log(await sha256Hex("hello"));

// Files: digest accepts an ArrayBuffer directly
const buf = await file.arrayBuffer();
console.log(await sha256Hex(buf));

Il Web Crypto nativo del browser supporta solo la famiglia SHA e richiede HTTPS o localhost; MD5 necessita una libreria di terze parti.

PHP
echo hash('sha256', 'hello');        // 64 hex characters
echo md5('hello');                   // same as hash('md5', 'hello')

// Streamed: hashes the file without loading it into memory
echo hash_file('sha256', 'setup.exe');

hash() e hash_file() supportano md5, sha1, sha256, sha512 e altro; l'hashing dei file è in streaming, quindi utilizza poca memoria.

Python
import hashlib

print(hashlib.sha256(b"hello").hexdigest())
print(hashlib.md5(b"hello").hexdigest())

# Large files: streamed, low memory (Python 3.11+)
with open("setup.exe", "rb") as f:
    print(hashlib.file_digest(f, "sha256").hexdigest())

La libreria standard hashlib non necessita di installazione; utilizza file_digest() per gli hash in streaming di file di grandi dimensioni (Python 3.11+).

Rust
use sha2::{Digest, Sha256};
use md5::Md5;

// Text
println!("{:x}", Sha256::digest(b"hello"));
println!("{:x}", Md5::digest(b"hello"));

// Large files: streamed, low memory
let mut file = std::fs::File::open("setup.exe")?;
let mut hasher = Sha256::new();
std::io::copy(&mut file, &mut hasher)?;
println!("{:x}", hasher.finalize());

L'hashing non è incluso nella libreria standard; aggiungi le crate RustCrypto sha2 e md-5 nel Cargo.toml. Con la funzionalità std attivata, io::copy esegue lo streaming dei file nel hasher.

FAQ

I miei testi e file sono stati caricati?

No. Tutto viene calcolato nel tuo browser: le chiamate della famiglia SHA usano l'API Web Crypto integrata, e MD5 viene eseguito nel JavaScript della pagina. Lo strumento continua a funzionare anche senza connessione alla rete — provalo con un file sensibile.

Perché il testo vuoto ha ancora un hash?

Gli algoritmi hash definiscono un output fisso unico anche per zero byte. L'MD5 di una stringa vuota è d41d8cd98f00b204e9800998ecf8427e e il suo SHA-256 inizia con e3b0c442. Questo strumento semplicemente nasconde i risultati quando l'input è vuoto, così non li copi per errore.

Può calcolare l'hash di file di qualsiasi dimensione?

Dipende dalla memoria disponibile del browser — installer e immagini disco di qualche centinaio di MB sono in genere ok. I file vengono letti in memoria in una sola passata, quindi per file di più GB preferisci gli strumenti da riga di comando (sha256sum, certutil).

Perché gli hash hanno lunghezze diverse?

La lunghezza è determinata dall'algoritmo: MD5 è di 32 caratteri esadecimali, SHA-1 di 40, SHA-256 di 64 e SHA-512 di 128. Due caratteri esadecimali per byte — e la lunghezza è indipendente dalla dimensione dell'input: un file di un byte e un file di più GB forniscono entrambi 64 caratteri con SHA-256.

Posso usarlo per creare firme API?

Sì. Molte piattaforme aperte firmano le richieste hashingando "parametri + segreto" con MD5 o SHA-256. Questo strumento è ottimo per controllare un valore di firma durante il debug; in produzione, calcola gli hash nella libreria del tuo linguaggio lato server e non incorporare mai il segreto nel codice frontend.

Come confronto una checksum con questo strumento?

Passa alla scheda "Checksum file", trascina il file e incolla la checksum dal sito ufficiale nella casella sopra i risultati. Lo strumento rileva automaticamente l'algoritmo in base alla lunghezza (32 caratteri MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384, 128 SHA-512): la riga corrispondente diventa verde con la nota "Superato" quando sono coerenti, e rossa quando non lo sono. La distinzione tra maiuscole e minuscole, gli spazi circostanti e le interruzioni di riga vengono ignorati automaticamente.

Strumenti correlati

Altri strumenti per codifica, crittografia e password.