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 sta per Message-Digest Algorithm 5, una funzione di hash pubblicata nel 1992. Dandole una parola, una frase o un intero file, produce sempre lo stesso risultato di 32 caratteri, e anche una minima modifica dell'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 unidirezionale. Prende un input di qualsiasi lunghezza e produce un output di dimensione fissa detto hash, o digest. "Unidirezionale" significa che il processo non può essere invertito: non esiste alcun metodo per ricostruire il testo originale dal solo hash.

L'algoritmo elabora i dati nelle fasi seguenti:

  1. Il messaggio viene convertito in byte e completato con padding finché la sua lunghezza è inferiore di 64 bit a un multiplo di 512 bit.
  2. Viene aggiunto un campo di 64 bit che registra la lunghezza originale del messaggio, così la lunghezza totale è un multiplo di 512 bit.
  3. Quattro numeri a 32 bit vengono impostati a valori iniziali fissi.
  4. Il messaggio con padding viene suddiviso in blocchi da 512 bit. Ogni blocco attraversa quattro round di 16 operazioni, per 64 operazioni a blocco. Ogni operazione mescola i dati del blocco nei quattro numeri in corso usando funzioni bit a bit, addizioni e rotazioni di bit.
  5. Dopo l'elaborazione di tutti i blocchi, i quattro numeri a 32 bit vengono uniti e scritti come cifre esadecimali.

Il risultato è sempre lungo 128 bit, mostrato come 32 caratteri esadecimali (0-9 e a-f), perché ogni byte dell'output da 128 bit è scritto con due cifre esadecimali.

Una funzione di hash è considerata sicura quando ha tre proprietà: lo stesso input dà sempre lo stesso output, è impraticabile trovare un input che produca un hash scelto, ed è impraticabile trovare due input diversi che producano lo stesso hash. MD5 ha ancora la prima proprietà, ma le altre due sono state violate, come spiegato più avanti.

Esempio di hash MD5

Applicando MD5 alla parola "hello" si ottiene:

1Input:  hello
2Output: 5d41402abc4b2a76b9719d911017c592
3

Secondo lo standard MD5, anche una stringa vuota ha un hash fisso e non vuoto, perché il padding e il campo della lunghezza passano comunque attraverso l'algoritmo. Questo strumento non mostra alcun risultato finché la casella di input è vuota.

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

Cambiando un solo carattere, per esempio scrivendo in maiuscolo la prima lettera in "Hello", si ottiene una stringa di 32 caratteri completamente diversa. Si chiama effetto valanga: piccole modifiche all'input causano grandi variazioni imprevedibili nell'output.

Come usare questo generatore di hash MD5

  1. Digitare o incollare il testo nella casella di input. Lo strumento calcola l'hash dei byte UTF-8 del testo e accetta fino a 1.000.000 di caratteri.
  2. L'hash compare automaticamente sotto la casella e si aggiorna al variare del testo. Non occorre premere nessun pulsante.
  3. Fare clic su "Copia" per copiare negli appunti l'hash di 32 caratteri.
  4. Sotto il risultato compare una piccola barra colorata, generata da una parte dell'hash, come rapido controllo visivo del fatto che due hash siano diversi.

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

Usi comuni degli hash MD5

  • Verificare che un file scaricato non si sia 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 di un valore più lungo.
  • Individuare file duplicati confrontando gli hash invece dell'intero contenuto dei file.
  • Sistemi di controllo di versione e di build, che usano gli hash per rilevare se un file è cambiato.

MD5 non è adatto per memorizzare password, generare firme digitali o in qualsiasi altro caso in cui un aggressore potrebbe tentare di falsificare o invertire l'hash. I motivi sono spiegati nella sezione successiva.

Storia di MD5

Ronald Rivest, crittografo americano, progettò MD5 come estensione del suo precedente algoritmo MD4. La specifica fu pubblicata come RFC 1321 nell'aprile 1992, e MD5 divenne ampiamente usato per i checksum e, per un certo periodo, anche a fini di sicurezza.

Le debolezze della funzione di compressione interna di MD5 furono descritte per la prima volta nel 1993, e una collisione per quella funzione fu dimostrata nel 1996. Nel 2004 un gruppo guidato dal crittografo Xiaoyun Wang pubblicò due input diversi che producono lo stesso hash MD5, un difetto chiamato collisione. Nel 2008 un altro gruppo di ricercatori usò un attacco a collisione per creare un certificato di autorità di certificazione contraffatto di cui si fidavano tutti i browser web più comuni. Questi risultati hanno portato gli enti di standardizzazione della sicurezza a non raccomandare più MD5 per nulla in cui la falsificazione sia rilevante.

Punti deboli di sicurezza di MD5

  • La resistenza alle collisioni è violata. È computazionalmente praticabile costruire due input diversi con lo stesso hash MD5.
  • La velocità lo penalizza per le password. MD5 è stato progettato per calcolare rapidamente, cosa utile per i checksum ma dannosa per la memorizzazione delle password, perché permette a un aggressore di provare miliardi di tentativi al secondo con un hardware comune.
  • Il miglior attacco di pre-immagine pubblicato è solo di poco più veloce che provare ogni possibile input, quindi risalire all'input esatto partendo da un hash resta impraticabile, ma questo da solo non rende MD5 adatto a usi sensibili per la sicurezza.

A causa di questi problemi, MD5 non è più accettabile per le firme digitali ed è inadatto alla memorizzazione di password, ai certificati SSL/TLS o a qualsiasi applicazione in cui qualcuno potrebbe tentare deliberatamente di produrre un hash corrispondente.

Alternative a MD5

  • SHA-256, parte della famiglia SHA-2, produce un hash a 256 bit e non ha alcun attacco a collisione pratico noto.
  • SHA-3, uno standard più recente basato sull'algoritmo Keccak, che integra la famiglia SHA-2.
  • BLAKE2, una funzione di hash veloce con una sicurezza ritenuta paragonabile a SHA-3.
  • Bcrypt, scrypt o Argon2, progettati appositamente per la memorizzazione delle password, perché sono volutamente lenti e resistenti ai tentativi accelerati dall'hardware.

Domande frequenti

A che cosa serve oggi MD5?

Soprattutto a compiti non legati alla sicurezza, come controlli di integrità dei file, deduplicazione e chiavi di cache. Non è più raccomandato per password, firme o certificati.

Un hash MD5 può essere invertito per ottenere il testo originale?

No. MD5 è una funzione unidirezionale, quindi non esiste alcun calcolo che riporti un hash al suo input. Un aggressore può comunque ipotizzare input probabili e calcolare l'hash di ciascuno per cercare una corrispondenza, ed è per questo che MD5 non è sicuro per le password.

Perché MD5 non è sicuro per memorizzare le password?

Poiché calcola molto velocemente, un aggressore con hardware moderno può provare un numero enorme di password al secondo. Algoritmi progettati allo scopo, come bcrypt, scrypt o Argon2, sono volutamente lenti per resistere a questo tipo di attacco.

Quanto è lungo un hash MD5?

Sempre 128 bit, mostrati come 32 caratteri esadecimali, indipendentemente da quanto sia lungo o corto il testo in input.

Due input diversi possono produrre lo stesso hash MD5?

Sì. Si chiama collisione, e fin 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 è calcolato da JavaScript in esecuzione nel browser e l'input non lascia mai il dispositivo.

Qual è la differenza tra MD5 e SHA-256?

Entrambe sono funzioni di hash, ma SHA-256 produce un hash più lungo, da 256 bit, e non ha alcun attacco a collisione pratico noto, mentre la resistenza alle collisioni di MD5 è violata. SHA-256 è la scelta migliore ogni volta che la sicurezza conta.

Riferimenti

  1. Rivest, R. RFC 1321: The MD5 Message-Digest Algorithm. RFC Editor, 1992. RFC 1321 — digest da 128 bit; padding fino a 448 mod 512 più una lunghezza da 64 bit; quattro round di 16 operazioni; MD5 come estensione di MD4; valore di prova per la stringa vuota.
  2. Turner, S.; Chen, L. RFC 6151: Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms. RFC Editor, 2011. RFC 6151 — MD5 pubblicato nel 1992; pseudo-collisioni per la funzione di compressione nel 1993, collisione della funzione di compressione nel 1996, collisioni complete nel 2004; miglior attacco di pre-immagine con complessità 2^123,4, più veloce della ricerca esaustiva; non più accettabile dove è richiesta la resistenza alle collisioni, come nelle firme digitali.
  3. Wang, X.; Feng, D.; Lai, X.; Yu, H. Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD. IACR Cryptology ePrint Archive, 2004/199. ePrint 2004/199 — il risultato del 2004 sulla collisione di MD5.
  4. Sotirov, A.; Stevens, M.; et al. MD5 considered harmful today: Creating a rogue CA certificate. 2008. Certificato CA contraffatto — un certificato CA contraffatto di cui si fidavano tutti i browser web più comuni, creato con una collisione MD5.
  5. National Institute of Standards and Technology. FIPS 202: SHA-3 Standard. FIPS 202 — le funzioni SHA-3 sono basate su Keccak e integrano la famiglia SHA-2.