Para completar la respuesta de @Terry: MD5 está a fondo roto por colisiones, pero solo muy débilmente debilitado por preimágenes y segundas preimágenes. El mejor ataque conocido ha costado 2 123.4 (consulte el artículo ), lo cual es increíblemente inviable con la tecnología existente, pero, desde un punto de vista académico, es algo mejor que la resistencia esperada de 2 127 que una función hash perfecta con una salida de 128 bits debería ofrecer.
SHA-256 es la "función hash predeterminada" actual que debe usar para cualquier cosa que requiera una función hash, a menos que algunas características de contexto específicas justifiquen otra función. Sin embargo, reemplazar el MD5 por controles de integridad no es una emergencia crítica; no hay necesidad de preocuparse por eso.
Si bien MD5 aún está bien para el propósito de la verificación de integridad, debe darse cuenta de que esto solo se traduce en el problema: aún debe asegurarse de utilizar el valor hash correcto . Por ejemplo, asegúrese de obtener el valor hash de un sitio web HTTPS (de un servidor de buena reputación). Los valores de hash son lo suficientemente pequeños como para permitir algunos mecanismos adicionales: puede escribirlos en papel o dictarlos por teléfono, por ejemplo, lo que no podría hacer con un archivo de 3 GB.