Primero que nada, sí, tanto MD5 como SHA1 se han retirado del uso criptográfico porque es posible construir pares de mensajes que produzcan el mismo valor de hash (también conocido como "colisiones"). Dicho esto, la posibilidad de golpear una colisión al azar es absurdamente baja.
MD5 tiene una salida de 128 bits, SHA1 es de 160 bits. Asumamos que un archivo con hash se procesará en una de las 2 posibles salidas 128 / 2 160 con igual probabilidad, luego, en promedio, espera encontrar una colisión después del hashing 2 127 / 2 159 archivos diferentes.
Supongamos que ha llenado un disco duro con archivos de 512 bits (64 bytes). Necesitaría 2 133 bits = 1.3 x 10 27 TB para MD5, o 2 165 bits = 5.8 x 10 36 TB para almacenar estos archivos. Para comparación, se estima que para 2020 la especie humana producirá 44 zetabytes (4.4 × 10 10 TB) de datos por año.
Por lo tanto, incluso si has eliminado todos los archivos del planeta con MD5, solo tienes 1 en 10 26 posibilidad de colisión por casualidad.
Para responder a su pregunta original:
Para remediar esto, pensé que cambiaría a SHA1, pero luego tuve la idea de que si comparaba ambos, habría incluso menos posibilidades de colisión.
¿Alguien aquí conoce ambos algoritmos lo suficientemente bien como para confirmar o negar esto?
Sí, es cierto que, dado que son funciones hash diferentes, las posibilidades de que existan dos mensajes que sean colisiones para ambas son minúsculas. No sé si es menos minúsculo que la posibilidad de colisión en SHA-2/256 o SHA-2/512. En este punto, estamos debatiendo las probabilidades astronómicas (es decir, la posibilidad de obtener una colisión es más pequeña que la cantidad de átomos en la cosa del tipo del universo), ¿así que / encogerse de hombros?
Ahora, si está hablando de ataques maliciosos (es decir, archivos diseñados específicamente para engañar a MD5 o SHA1), entonces tal vez tenga un punto. ... En ese caso, use SHA2 (que es de 256 bits) y estará bien :)