Per completare la risposta di @ Terry: MD5 è accuratamente rotto per le collisioni, ma solo leggermente indebolito per le pre-immagini e le seconde pre-immagini. L'attacco più noto è costato 2 123.4 (vedi l'articolo ), che è incredibilmente non fattibile con la tecnologia esistente, ma, da un punto di vista accademico, un po 'meglio della prevista resistenza 2 127 che una perfetta funzione di hash con un output a 128 bit dovrebbe offrire.
SHA-256 è l'attuale "funzione di hash predefinita" che dovresti usare per tutto ciò che richiede una funzione hash, a meno che alcune specifiche caratteristiche del contesto non garantiscano un'altra funzione. Tuttavia, la sostituzione di MD5 per i controlli di integrità non è un'emergenza critica; non c'è bisogno di preoccuparsi per questo.
Sebbene MD5 sia ancora valido ai fini del controllo di integrità, è necessario rendersi conto che questo si traduce solo nel problema: è comunque necessario assicurarsi di utilizzare il valore hash corretto . Ad esempio, assicurati di ottenere il valore hash da un sito Web HTTPS (da un server affidabile). I valori di hash sono abbastanza piccoli da consentire alcuni meccanismi aggiuntivi: puoi scriverli su carta o dettarli per telefono, ad esempio, cosa che non potresti fare con un archivio da 3 GB.