MD5 (message digest 5) è un algoritmo hash 128 bit (Indipendentemente dall'input e dalla sua lunghezza restituisce un output lungo 128bit) sviluppato da Ron Rivest nei primi anni '90, non essendo considerata una tecnologia utilizzata per la criptazione non è soggetta a nessun tipo di restrinzioni in stati come gli USA ove vi sono leggi che limitano e controllano l'uso di sistemi di criptazione dati.
Attualmente è implementato in numerosi linguaggi di programmazione come C, Java e PHP.
Tutti quei programmi che hanno incorporato questo algoritmo per lo più vengono utilizzati per monitorare i file di un sistema per individuare possibili corruzioni o modifiche del file stesso. Esempi di questi programmi sono Tripwire (http://www.tripwire.org/) e SGI_FAM (http://oss.sgi.com/projects/fam/).
L'uso di MD5 nei sistemi linux e Unix per l'autenticazione utente aggiunge due enormi vantaggi in ambito sicurezza delle password:
- Lunghezza infinita della password (Altrimenti limitata a 8 caratteri)
- Spazio maggiore per la chiave (Altrimenti limitata a 13 caratteri)
Esempio:
Password in formato DES: pluto:/ftypF.PVqn5
Password in formato MD5: pluto:$aprl$CaVFD/..$GIrdfKK7x04Nw1iEsYYpl