logo
GeekFormat

Hash MD5

Input0 caratteri · 0 byte
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

Strumento hash MD5 online gratuito. Modalità testo/file/batch/HMAC-MD5, UTF-8/Latin1, maiuscolo, raggruppamento 8 caratteri. ⚠️ MD5 è compromesso — NON usarlo per archiviare password.

Raccomandazioni correlate

Casi d'uso

  • Integrità file: calcola MD5 dopo il download per verificare rispetto ai checksum ufficiali
  • Generazione di digest in batch per file di configurazione o note di rilascio
  • Firma HMAC-MD5 per l'integrazione con sistemi legacy
  • Deduplicazione dei dati tramite confronto rapido MD5
  • Generazione di chiavi cache come identificatori univoci brevi
  • Apprendimento: comprendere gli algoritmi hash confrontando output MD5/SHA-1/SHA-256

Funzionalità

  • Quattro modalità: Testo, File, Batch riga per riga e HMAC-MD5 che coprono scenari di checksum comuni
  • Codifica UTF-8/Latin1 selezionabile per adattarsi a input di sistemi diversi
  • Output in maiuscolo e raggruppamento di 8 caratteri per leggibilità umana
  • Hashing frammentato file: lettura incrementale per file grandi evita problemi di memoria
  • Modalità batch: ogni riga viene hashata indipendentemente con output originale→hash
  • Copia dei risultati con un clic

Come utilizzare

  1. Seleziona modalità: Testo, File, Batch o HMAC-MD5
  2. Configura parametri: codifica, maiuscolo, raggruppamento 8 caratteri
  3. Inserisci testo, carica file o incolla contenuto batch
  4. Copia il risultato hash per verifica o script

Domande frequenti

Per cosa viene comunemente usato MD5?

MD5 è comunemente usato per controlli di integrità dei file (come verifica dei download), generazione rapida di digest, compatibilità con sistemi legacy, chiavi di cache e deduplicazione dei dati in scenari non di sicurezza. MD5 produce 128 bit (32 caratteri esadecimali) ed è molto veloce, adatto a scenari di verifica con bassi requisiti di sicurezza.

MD5 vs SHA-256?

MD5 produce 128 bit (32 hex) ed è molto veloce ma compromesso; SHA-256 produce 256 bit (64 hex), è più lento ma non ha attacchi di collisione pratici ed è preferito per usi critici di sicurezza.

Strumento SHA-256

Perché MD5 non è sicuro per le password?

MD5 è estremamente veloce: le GPU moderne possono calcolare miliardi di hash al secondo e le rainbow table aggirano rapidamente le password comuni. Per l'archiviazione delle password usa bcrypt, scrypt o Argon2.

Generatore di Password

MD5 è compromesso — posso ancora usarlo?

Assolutamente NO per la sicurezza (firme digitali, password, TLS). Ma per usi non sicuri (controlli di corruzione file, deduplicazione, chiavi cache), MD5 va ancora bene perché gli attaccanti non hanno incentivi a creare collisioni.

Gli hash MD5 possono essere "decrittati"?

MD5 è unidirezionale e non può essere invertito matematicamente, ma rainbow table e forza bruta possono recuperare password deboli in pochi secondi. Questo è il motivo per cui MD5 non deve mai essere usato per archiviare password.

I file grandi causeranno rallentamenti?

No. Lo strumento utilizza la lettura incrementale frammentata: i file non vengono caricati completamente in memoria, quindi anche file di più GB vengono elaborati senza problemi con un'interfaccia reattiva.

Cos'è HMAC-MD5 rispetto a MD5 semplice?

HMAC-MD5 è un hash con chiave che richiede una chiave segreta. Sebbene MD5 semplice sia compromesso, HMAC-MD5 è ancora sicuro quando la chiave è sconosciuta (sebbene la migrazione a HMAC-SHA256 sia consigliata).

Generatore HMAC

Cos'è MD5?

MD5 (Message-Digest Algorithm 5) è una funzione hash a 128 bit progettata da Ronald Rivest nel 1991 (RFC 1321), che produce un digest esadecimale fisso di 32 caratteri da input arbitrario. Ampiamente usato per firme digitali, verifica di certificati e archiviazione di password, MD5 è stato compromesso dall'attacco di collisione di Wang et al. nel 2004, e il malware Flame ha sfruttato le collisioni MD5 per falsificare un certificato CA fidato nel 2008.

**Stato di sicurezza**: NIST ha deprecato ufficialmente MD5 per le firme digitali in SP 800-131A (2011). Tuttavia, MD5 rimane utile per scenari non di sicurezza: controlli di integrità dei file contro la corruzione accidentale, deduplicazione dei dati e chiavi di cache. La domanda chiave: un attaccante trarrebbe vantaggio dal creare una collisione? Se no, la velocità di MD5 è un vantaggio.

**Non usare mai MD5 per archiviare password**: MD5 è estremamente veloce (miliardi di hash/secondo su GPU), consentendo attacchi di forza bruta istantanei sulle password comuni. L'archiviazione delle password DEVE usare bcrypt, scrypt o Argon2 — hash lenti con fattori di costo configurabili che rendono la forza bruta impossibile.

**HMAC-MD5 è ancora sicuro**: sebbene MD5 semplice sia compromesso, HMAC-MD5 (codice di autenticazione di messaggio hash con chiave) rimane sicuro quando la chiave è sconosciuta perché la costruzione HMAC non dipende direttamente dalla resistenza alle collisioni dell'hash. La migrazione a HMAC-SHA256 è comunque consigliata.

Lo strumento utilizza un'implementazione MD5 in JavaScript puro (l'API Web Crypto non supporta più MD5). Tutti i calcoli avvengono localmente nel tuo browser: i file utilizzano la lettura incrementale frammentata e non vengono mai caricati sui server.

术语表

Funzione Hash (Hash Function)
Una funzione matematica che mappa input di lunghezza arbitraria in output di lunghezza fissa. Le buone funzioni hash forniscono unidirezionalità, resistenza alle collisioni ed effetto valanga.
Attacco di Collisione (Collision Attack)
Trovare due input distinti che producono lo stesso output hash. Le collisioni MD5 sono state dimostrate da Wang et al. nel 2004, consentendo di falsificare firme digitali.
Attacco di Preimmagine (Preimage Attack)
Trovare un input che produca un determinato output hash. Più difficile delle collisioni, ma una nuova ricerca del 2024 ha indebolito significativamente la resistenza alla preimmagine di MD5.
Rainbow Table
Tabelle di ricerca hash→testo in chiaro precalcolate per decifrare rapidamente hash di password deboli. Il salting sconfigge le rainbow table.
HMAC (Hash-based Message Authentication Code)
Codice di autenticazione di messaggio basato su hash che utilizza una chiave segreta per l'integrità/autenticazione dei messaggi. HMAC-MD5 e HMAC-SHA256 sono varianti comuni.Generatore HMAC
bcrypt
Un algoritmo di hashing delle password lento con salting integrato e fattore di costo configurabile, rendendo gli attacchi di forza bruta proibitivamente costosi.
Checksum
Un piccolo valore fisso utilizzato per verificare l'integrità dei dati. MD5, SHA-1, SHA-256 sono comunemente usati come checksum per rilevare la corruzione durante la trasmissione.
Effetto Valanga (Avalanche Effect)
Un piccolo cambiamento nell'input (anche 1 bit) causa un cambiamento drastico e imprevedibile nell'hash di output. MD5 ha ancora buone proprietà di effetto valanga, contribuendo alla sua utilità continua nei controlli non sicuri.
RFC 1321
Lo standard ufficiale MD5 presentato all'IETF da Ronald Rivest nel 1992, descrivendo i passaggi dell'algoritmo e i vettori di test.
Hashing Frammentato (Chunked Hashing)
Elaborare file grandi in blocchi invece di caricare l'intero file in memoria, aggiornando incrementalmente lo stato dell'hash.

Confronto degli algoritmi di hash comuni

AlgoritmoBit di outputLunghezza HexSicurezzaVelocitàUso consigliato
MD5128 bit32 caratteri❌ Compromesso (collisioni/preimmagine)EstremaChecksum file, deduplicazione, chiavi cache
SHA-1160 bit40 caratteri❌ Collisioni (2017)VeloceGit, compatibilità legacy
SHA-256256 bit64 caratteri✅ SicuroMediaFirme digitali, certificati, blockchain
SHA-512512 bit128 caratteri✅ SicuroVeloce (64 bit)Scenari alta sicurezza, derivazione chiavi
bcrypt-60 caratteri✅ Specializzato passwordLento (configurabile)Archiviazione password

Cronologia degli eventi di sicurezza MD5

AnnoEventoImpatto
1991Ron Rivest progetta MD5 (RFC 1321)Sostituisce MD4 e diventa l'algoritmo di hash principale
1996Scoperto il primo difetto di pseudo-collisione in MD5La comunità accademica solleva preoccupazioni
2004Il team di Wang Xiaoyun dimostra l'attacco di collisione MD5Le firme digitali MD5 completamente compromesse
2008Il malware Flame falsifica certificati CA tramite collisione MD5NIST deprecica ufficialmente MD5 per le firme
2011NIST SP 800-131A vieta ufficialmente MD5 per usi di sicurezzaI sistemi governativi statunitensi eliminano gradualmente MD5
2024Pubblicato nuovo articolo su attacco di preimmagineL'ultima linea di difesa di MD5 è violata

Code Examples

MD5/Hashing in JavaScript (Web Crypto supports SHA, MD5 needs library)

// Note: Web Crypto API does NOT support MD5 (deprecated)
// Use SHA-256 instead for new projects
async function sha256(message) {
  const msgBuffer = new TextEncoder().encode(message);
  const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
  return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2,'0')).join('');
}
sha256('Hello World').then(console.log);

// MD5 in Node.js using crypto module
const crypto = require('crypto');
const md5 = crypto.createHash('md5').update('Hello World').digest('hex');
console.log(md5); // b10a8db164e0754105b7a99be72e3fe5

MD5 Hashing in Python

import hashlib
text = 'Hello World'
md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
print(md5_hash)  # b10a8db164e0754105b7a99be72e3fe5

# File MD5 (chunked for large files)
def md5_file(filepath, chunk_size=8192):
    md5 = hashlib.md5()
    with open(filepath, 'rb') as f:
        while chunk := f.read(chunk_size):
            md5.update(chunk)
    return md5.hexdigest()

# HMAC-MD5
import hmac
hmac_md5 = hmac.new(b'secret-key', b'Hello World', hashlib.md5).hexdigest()
print(hmac_md5)

MD5 Hashing in Java

import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;

public class MD5Example {
    public static String md5(String input) throws Exception {
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for (byte b : hash) sb.append(String.format("%02x", b));
        return sb.toString();
    }
    public static void main(String[] args) throws Exception {
        System.out.println(md5("Hello World"));
        // b10a8db164e0754105b7a99be72e3fe5
    }
}
// Note: Use SHA-256 for new code: MessageDigest.getInstance("SHA-256")

Authoritative References