MD5 para contraseñas
Usar md5 con sal para contraseñas es una mala idea. No debido a las debilidades criptográficas de MD5, sino porque es rápido. Esto significa que un atacante puede probar miles de millones de contraseñas candidatas por segundo en una sola GPU.
Lo que deberías usar son construcciones hash deliberadamente lentas, como scrypt, bcrypt y PBKDF2. El SHA-2 con sal simple no es lo suficientemente bueno porque, como la mayoría de los hashes de propósito general, es rápido. Consulte ¿Cómo hash seguro las contraseñas? para obtener detalles sobre lo que debe usar.
MD5 para integridad de archivos
El uso de MD5 para la integridad de los archivos puede o no ser un problema práctico, dependiendo de su escenario de uso exacto.
Los ataques contra MD5 son ataques de colisión, no ataques previos a la imagen. Esto significa que un atacante puede producir dos archivos con el mismo hash, si tiene control sobre ambos. Pero no puede igualar el hash de un archivo existente en el que no influyó.
No sé si los ataques se aplican a su aplicación, pero personalmente, empezaría a migrar incluso si cree que no es así. Es demasiado fácil pasar por alto algo. Mejor prevenir que lamentar.
La mejor solución en este contexto es SHA-2 (SHA-256) por ahora. Una vez que se estandarice el SHA-3, también será una buena opción.