Vai al contenuto

Generatore di Hash MD5 Online - Strumento Gratuito di Crittografia MD5

Genera hash MD5 istantaneamente con il nostro strumento online gratuito. L'elaborazione lato client garantisce la privacy. Perfetto per controlli di integrità dei dati e verifica dei file.

Generatore di Hash MD5

Calcolatore di caricamento...
📚

Documentazione

Che cos’è un generatore di hash MD5?

Un generatore di hash MD5 è uno strumento che trasforma qualsiasi testo in un codice di lunghezza fissa chiamato hash MD5. MD5 è l’acronimo di Message-Digest Algorithm 5, una funzione di hash pubblicata nel 1992. L’inserimento di una parola, una frase o un file intero produce sempre lo stesso risultato di 32 caratteri, mentre anche una variazione minima nell’input produce un risultato completamente diverso. Questo strumento esegue l’algoritmo direttamente nel browser tramite JavaScript, quindi il testo digitato non viene mai inviato a un server.

Come funziona l’hashing MD5

MD5 è una funzione a senso unico. Prende un input di qualsiasi lunghezza e produce un output di dimensione fissa chiamato hash o digest. “A senso unico” significa che il processo non può essere invertito: non esiste un metodo per ricostruire il testo originale partendo esclusivamente dall’hash.

L’algoritmo elabora i dati nelle fasi seguenti:

  1. Il messaggio viene convertito in byte e completato con un padding, in modo che la sua lunghezza sia un multiplo di 512 bit.
  2. Viene aggiunto un campo di 64 bit che registra la lunghezza del messaggio originale.
  3. Quattro numeri di 32 bit vengono impostati su valori iniziali fissi.
  4. Il messaggio completato viene suddiviso in blocchi di 512 bit. Ogni blocco attraversa quattro round di 16 operazioni, per un totale di 64 operazioni per blocco. Ogni operazione combina i dati del blocco con i quattro numeri in uso tramite funzioni bit a bit, addizioni e rotazioni di bit.
  5. Dopo l’elaborazione di ogni blocco, i quattro numeri di 32 bit vengono concatenati e scritti come cifre esadecimali.

Il risultato è sempre lungo 128 bit ed è visualizzato come 32 caratteri esadecimali (0-9 e a-f), perché ogni byte dell’output di 128 bit viene scritto usando due cifre esadecimali.

Una funzione di hash è considerata sicura quando possiede tre proprietà: lo stesso input produce sempre lo stesso output, è impraticabile trovare un input che produca un hash scelto e è impraticabile trovare due input diversi che producano lo stesso hash. MD5 conserva la prima proprietà, ma le altre due sono state violate, come spiegato di seguito.

Esempio di hash MD5

L’hashing della parola “hello” con MD5 produce:

1Input:  hello
2Output: 5d41402abc4b2a76b9719d911017c592
3

L’hashing di una stringa vuota produce comunque un risultato fisso e non vuoto, perché anche il padding e il campo della lunghezza vengono elaborati dall’algoritmo:

1Input:  (empty string)
2Output: d41d8cd98f00b204e9800998ecf8427e
3

La modifica di un solo carattere, per esempio trasformando la prima lettera in maiuscolo e ottenendo “Hello”, produce una stringa di 32 caratteri completamente diversa. Questo fenomeno è chiamato effetto valanga: piccole modifiche all’input causano variazioni ampie e imprevedibili nell’output.

Come usare questo generatore di hash MD5

  1. Digitare o incollare il testo nella casella di input.
  2. L’hash compare automaticamente sotto la casella e si aggiorna quando il testo cambia. Non è necessario premere un pulsante separato.
  3. Fare clic su “Copia” per copiare l’hash di 32 caratteri negli appunti.
  4. Sotto il risultato compare una piccola barra colorata, generata da una parte dell’hash, che consente un controllo visivo rapido per verificare se due hash sono diversi.

Poiché il calcolo avviene nel motore JavaScript del browser, dopo il caricamento la pagina non necessita di una connessione Internet e il testo digitato non viene trasmesso da nessuna parte.

Usi comuni degli hash MD5

  • Verificare che un file scaricato non sia stato danneggiato durante il trasferimento, confrontando il suo hash con un valore pubblicato.
  • Creare chiavi di ricerca o identificatori di cache per i dati, poiché un hash è un sostituto breve e di dimensione fissa per un valore più lungo.
  • Rilevare file duplicati confrontando gli hash invece del contenuto completo dei file.
  • Sistemi di controllo versione e sistemi di compilazione, che usano gli hash per rilevare se un file è cambiato.

MD5 non è adatto per memorizzare password, generare firme digitali o per qualsiasi altro caso in cui un attaccante possa tentare di falsificare o invertire l’hash. Le ragioni sono illustrate nella sezione successiva.

Storia di MD5

Ronald Rivest, crittografo statunitense, progettò MD5 nel 1991 come successore del precedente algoritmo MD4. L’Internet Engineering Task Force pubblicò la specifica come RFC 1321 nel 1992 e MD5 divenne ampiamente usato per i checksum e, per un certo periodo, anche per scopi di sicurezza.

Le debolezze nella struttura interna di MD5 furono osservate già nel 1996. Nel 2004, un gruppo guidato dalla crittografa Xiaoyun Wang dimostrò un metodo pratico per creare due input diversi che producono lo stesso hash MD5, una vulnerabilità chiamata collisione. Nel 2008, un altro gruppo di ricercatori usò un attacco basato su una collisione per falsificare un certificato di sicurezza di un sito web, che i browser dell’epoca avrebbero accettato come autentico. Questi risultati indussero gli organismi che definiscono gli standard di sicurezza a non raccomandare più MD5 per gli utilizzi in cui la falsificazione è rilevante.

Debolezze di sicurezza di MD5

  • La resistenza alle collisioni è compromessa. È computazionalmente pratico costruire due input diversi con lo stesso hash MD5.
  • La velocità è uno svantaggio per le password. MD5 è stato progettato per calcolare rapidamente gli hash, una caratteristica utile per i checksum ma dannosa per la memorizzazione delle password, perché consente a un attaccante di provare miliardi di combinazioni al secondo su hardware comune.
  • Non è noto pubblicamente alcun attacco di preimmagine più rapido della forza bruta, quindi recuperare un input preciso partendo da un hash è ancora difficile; questo, da solo, non rende però MD5 adatto agli utilizzi sensibili per la sicurezza.

Per questi motivi, MD5 non è adatto alla memorizzazione delle password, alle firme digitali, ai certificati SSL/TLS o a qualsiasi applicazione in cui qualcuno possa tentare deliberatamente di produrre un hash corrispondente.

Alternative a MD5

  • SHA-256, parte della famiglia SHA-2, produce un hash di 256 bit e non presenta attacchi pratici alle collisioni conosciuti.
  • SHA-3, uno standard più recente basato su una struttura interna diversa da quella di SHA-2.
  • BLAKE2, una funzione di hash veloce con un livello di sicurezza considerato paragonabile a quello di SHA-3.
  • Bcrypt, scrypt o Argon2, progettati specificamente per la memorizzazione delle password, poiché sono deliberatamente lenti e resistenti ai tentativi accelerati dall’hardware.

Domande frequenti

A cosa serve oggi MD5?

Principalmente ad attività non legate alla sicurezza, come il controllo dell’integrità dei file, la deduplicazione e le chiavi di cache. Non è più raccomandato per password, firme o certificati.

È possibile invertire un hash MD5 per ottenere il testo originale?

No. MD5 è una funzione a senso unico, quindi non esiste un calcolo che trasformi un hash nel relativo input. Un attaccante può comunque indovinare gli input probabili e calcolare l’hash di ciascuno per verificare se corrisponde, motivo per cui MD5 non è sicuro per le password.

Perché MD5 non è sicuro per memorizzare le password?

Poiché calcola gli hash molto rapidamente, un attaccante dotato di hardware moderno può provare un numero enorme di password al secondo. Algoritmi progettati appositamente, come bcrypt, scrypt o Argon2, sono deliberatamente lenti per contrastare questo tipo di attacco.

Quanto è lungo un hash MD5?

È sempre lungo 128 bit ed è visualizzato come 32 caratteri esadecimali, indipendentemente dalla lunghezza del testo inserito.

Due input diversi possono produrre lo stesso hash MD5?

Sì. Questo fenomeno è chiamato collisione e dal 2004 i ricercatori hanno dimostrato metodi pratici per costruire coppie di questo tipo. È il motivo principale per cui MD5 non è più considerato sicuro.

Questo strumento invia il testo digitato a un server?

No. L’hash viene calcolato da JavaScript eseguito nel browser e l’input non lascia mai il dispositivo.

Qual è la differenza tra MD5 e SHA-256?

Entrambi sono funzioni di hash, ma SHA-256 produce un hash più lungo, di 256 bit, e non presenta attacchi pratici alle collisioni conosciuti, mentre la resistenza alle collisioni di MD5 è compromessa. SHA-256 è la scelta migliore quando la sicurezza è importante.

Riferimenti

  1. Rivest, R. (1992). “The MD5 Message-Digest Algorithm.” RFC 1321, Internet Engineering Task Force. https://tools.ietf.org/html/rfc1321
  2. Turner, S., Chen, L. (2011). “Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms.” RFC 6151, Internet Engineering Task Force. https://tools.ietf.org/html/rfc6151
  3. Wang, X., Yu, H. (2005). “How to Break MD5 and Other Hash Functions.” Advances in Cryptology - EUROCRYPT 2005.
  4. Sotirov, A., et al. (2008). “MD5 Considered Harmful Today: Creating a Rogue CA Certificate.” Presentato al 25th Chaos Communication Congress.
  5. National Institute of Standards and Technology (2015). “SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions.” FIPS 202. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf