MD5 für Passwörter
Die Verwendung von Salted MD5 für Passwörter ist eine schlechte Idee. Nicht wegen der kryptografischen Schwächen von MD5, sondern weil es schnell ist. Dies bedeutet, dass ein Angreifer Milliarden Kandidatenkennwörter pro Sekunde auf einer einzelnen GPU ausprobieren kann.
Sie sollten absichtlich langsame Hash-Konstruktionen wie Scrypt, Bcrypt und PBKDF2 verwenden. Einfach gesalzenes SHA-2 ist nicht gut genug, da es wie die meisten Allzweck-Hashes schnell ist. Weitere Informationen zu den zu verwendenden Kennwörtern finden Sie unter Wie werden Kennwörter sicher gehasht?.
MD5 für die Dateiintegrität
Die Verwendung von MD5 für die Dateiintegrität kann oder kann nicht ein praktisches Problem sein, abhängig von Ihrem genauen Nutzungsszenario.
Die Angriffe gegen MD5 sind Kollisionsangriffe, keine Pre-Image-Angriffe. Dies bedeutet, dass ein Angreifer zwei Dateien mit demselben Hash erstellen kann, wenn er die Kontrolle über beide hat. Aber er kann nicht mit dem Hash einer vorhandenen Datei übereinstimmen, die er nicht beeinflusst hat.
Ich weiß nicht, ob die Angriffe auf Ihre Anwendung zutreffen, aber ich persönlich würde mit der Migration beginnen, selbst wenn Sie es glauben nicht. Es ist viel zu leicht, etwas zu übersehen. Besser sicher als leid.
Die beste Lösung in diesem Zusammenhang ist derzeit SHA-2 (SHA-256). Sobald SHA-3 standardisiert ist, ist es auch eine gute Wahl.