MD5 pour les mots de passe
Utiliser md5 salé pour les mots de passe est une mauvaise idée. Pas à cause des faiblesses cryptographiques de MD5, mais parce qu'il est rapide. Cela signifie qu'un attaquant peut essayer milliards de mots de passe candidats par seconde sur un seul GPU.
Ce que vous devez utiliser, ce sont des constructions de hachage délibérément lentes, telles que scrypt, bcrypt et PBKDF2. Le SHA-2 salé simple n'est pas assez bon car, comme la plupart des hachages à usage général, il est rapide. Consultez Comment hacher les mots de passe en toute sécurité? pour plus de détails sur ce que vous devez utiliser.
MD5 pour l'intégrité des fichiers
L'utilisation de MD5 pour l'intégrité des fichiers peut ou non être un problème pratique, en fonction de votre scénario d'utilisation exact.
Les attaques contre MD5 sont des attaques par collision, pas des attaques pré-image. Cela signifie qu'un attaquant peut produire deux fichiers avec le même hachage, s'il a le contrôle sur les deux. Mais il ne peut pas correspondre au hachage d'un fichier existant qu'il n'a pas influencé.
Je ne sais pas si les attaques s'appliquent à votre application, mais personnellement, je commencerais à migrer même si vous le pensez pas. Il est beaucoup trop facile d'oublier quelque chose. Mieux vaut prévenir que guérir.
La meilleure solution dans ce contexte est SHA-2 (SHA-256) pour le moment. Une fois que SHA-3 sera normalisé, ce sera également un bon choix.