Per MD5, nessuno che sia rispettabile e competente lo sta utilizzando in un contesto in cui la resistenza alla collisione è importante. Per SHA-1, è in fase di eliminazione; la rottura di SHA-1 non era pratica quando è stata rilasciata, e solo ora sta diventando importante pensare di eliminarla gradualmente dove è richiesta la resistenza alle collisioni. In effetti, è in fase di eliminazione; per esempio, i certificati TLS a lungo termine con SHA-1 non funzionano più su Chrome, per spingere le persone a passare a SHA-2. Tuttavia, non è ancora praticamente rotto, quindi per ora è accettabile.
La ragione per cui non è stata rilasciata per tutto immediatamente è perché la sicurezza comporta dei compromessi. Non abbandonare uno standard importante e rendere tutto incompatibile con una base di installazione gigante sulla base di qualcosa che potrebbe portare a attacchi pratici nel giro di un decennio. La compatibilità è importante.
Inoltre, per molti usi, MD5 e SHA-1 non sono affatto incrinati. Entrambi hanno punti deboli contro la resistenza alle collisioni, il che significa che un utente malintenzionato può creare due messaggi che cancellano la stessa cosa. Nessuno dei due è rotto contro la resistenza di preimage (dato un hash, trova qualcosa che fa quell'hash), o contro la resistenza del secondo preimage (dato un messaggio, trova un messaggio diverso con lo stesso hash), o (le loro funzioni di compressione) come pseudo-casuale funzioni. Ciò significa che le costruzioni come HMAC-MD5 possono ancora essere sicure, perché non si basa sulla proprietà di MD5 che è rotta. Meno che ideale, certo, ma vedi "la compatibilità conta se è ancora sicuro" sopra.
Il controllo dell'integrità dei file tramite hash è quasi sempre inutile; a meno che gli hash non vengano inviati su un canale più sicuro del file, è possibile manomettere gli hash così facilmente come con il file. Tuttavia, se gli hash sono inviati in modo più sicuro del file, MD5 e SHA-1 sono ancora in grado di proteggere l'integrità dei file. Poiché l'autore dell'attacco non ha l'influenza alcuna sui file legittimi (e ci deve essere l'influenza zero per essere al sicuro), la creazione di un nuovo file con lo stesso hash richiede infrangendo la seconda resistenza preimage, che nessuno ha mai fatto per MD5 o SHA-1.
Notare la differenza tra controllo dell'integrità e certificati. I certificati sono emessi da una CA da un CSR creato dall'utente; l'attaccante può avere un'influenza enorme sul contenuto del certificato reale, quindi un attacco di collisione consente a un utente malintenzionato di creare un certificato legittimo e falso che collide, ottiene il certificato legittimo e utilizza la firma su quello falso. Al contrario, nell'integrità dei file, l'attaccante normalmente ha il controllo zero sul file legittimo, quindi ha bisogno di ottenere una collisione con un file dato , che è molto più difficile (e che per quanto sappiamo non può essere fatto con MD5).