TK TaskKit
Strumenti per dev

Generatore di hash MD5

Calcola checksum MD5 a 128 bit per testo o file nel tuo browser. Comune per controlli di integrità storici ed ETag. Non resistente alle collisioni — preferisci SHA-256 quando l'integrità conta per la sicurezza.

Input
Hash
Incolla testo per calcolare MD5, SHA-1, SHA-256, SHA-384 e SHA-512.

Gli input restano su questo dispositivo. Ogni strumento per dev di TaskKit gira interamente nel tuo browser. Token, payload e testo incollato non vengono trasmessi ai server di TaskKit né a terze parti.

Cosa fa questo strumento

Calcola l'hash MD5 di qualsiasi testo o file nel tuo browser, restituendo un digest esadecimale di 32 caratteri. MD5 è una funzione di hash a 128 bit dell'RFC 1321, progettata da Ron Rivest nel 1991. È veloce — file da diversi gigabyte si hashano in secondi — ma non è resistente alle collisioni: due input distinti possono essere ingegnerizzati per produrre lo stesso hash MD5, e questo è stato dimostrato in natura dal 2005.

Quando MD5 va bene

  • ETag e cache content-addressable. Una cache web che hasha i suoi oggetti con MD5 sta usando l'hash come chiave di bucket veloce, non come garanzia di sicurezza. Il modello di attaccante è « due client producono accidentalmente lo stesso contenuto », che MD5 ancora gestisce bene.
  • Deduplicazione di file su un set fidato. Se controlli gli input (i tuoi backup, i documenti del tuo team), le collisioni MD5 sono astronomicamente improbabili senza un attaccante.
  • Confrontare con un checksum legacy. Vecchi download di software, liste di mirror FTP e documentazione pre-2010 spesso pubblicano solo MD5. Verificare quel numero è ciò per cui MD5 serve.
  • Impronta rapida di un file prima del trasferimento. Due ingegneri che confrontano se hanno « lo stesso file » beneficiano della velocità di MD5; il modello di minaccia è errore umano, non collisione avversaria.

Quando MD5 non va bene

  • Archiviazione password. Usa un hash di password lento e salato come bcrypt, scrypt o Argon2. MD5 è troppo veloce — una GPU moderna calcola miliardi di MD5 al secondo, quindi qualsiasi database leakkato viene rainbow-tabled in minuti.
  • Firme digitali o certificati. Le collisioni sono reali. I ricercatori hanno costruito certificati CA fraudolenti sfruttando collisioni MD5 nel 2008. Qualsiasi cosa che lasci a un attaccante scegliere l'input è rotta.
  • Verifica di integrità contro un attaccante determinato. Se l'attaccante può forgiare il file che stai hashando, MD5 non ti protegge. SHA-256 sì.
  • Qualsiasi cosa che la conformità moderna richieda in SHA-2 o SHA-3. PCI DSS, FIPS 140-3 e la maggior parte degli standard governativi hanno proibito MD5 per nuove applicazioni dalla fine degli anni 2000.

Vettori di test

Verifica l'implementazione contro i vettori di test canonici dell'RFC 1321:

  • Stringa vuota ""d41d8cd98f00b204e9800998ecf8427e
  • "a"0cc175b9c0f1b6a831c399e269772661
  • "abc"900150983cd24fb0d6963f7d28e17f72
  • "message digest"f96b697d7cb7938d525a2f31aaf161d0
  • "The quick brown fox jumps over the lazy dog"9e107d9d372bb6826bd81d3542a419d6

Incolla uno qualsiasi di questi nell'input sopra; il digest deve corrispondere esattamente.

Note

Perché l'hash è di 32 caratteri e non 16? MD5 produce 128 bit = 16 byte. Ogni byte si rende in 2 caratteri hex, dando 32 caratteri visibili. Il digest sottostante è di 16 byte in entrambi i modi.

MD5 fa trapelare informazioni sull'input? Crittograficamente, no — dato un hash non puoi recuperare l'input. Ma per input brevi o strutturati (parole singole, password comuni) puoi cercare l'hash in una rainbow table pubblica in millisecondi. Per questo MD5 non è adatto all'archiviazione password anche quando « salato debolmente ».

Perché il mio MD5 differisce da quello che restituisce md5sum? Molto probabilmente l'input differisce per un newline finale. echo "hello" aggiunge \n; incollare "hello" qui no. Usa echo -n, o hasha il file direttamente con il selettore di file.

Strumenti correlati

  • Generatore di hash — calcola MD5, SHA-1, SHA-256, SHA-384 e SHA-512 affiancati
  • SHA-256 — il default moderno per hashing rilevante in sicurezza
  • Base64 — abbinato a MD5 per chiavi di archiviazione content-addressable