Para agregar información sobre la buena respuesta de @ CodesInChaos:
El uso de varios hashes simultáneamente se ha sugerido como una forma de hacer frente a las debilidades futuras de las funciones de hash. Por ejemplo, hash con MD5 y con SHA-1, para que tu sistema permanezca robusto incluso si uno de ellos se rompe (independientemente de cuál esté roto). Esto equivale a definir una nueva función hash (llamémosla SHAMD-51) que ofrece como salida la concatenación de lo que SHA-1 y MD5, respectivamente, producirían sobre los datos de entrada.
Es fácil ver que la concatenación le dará una función que será al menos tan resistente a la colisión como la más fuerte de las dos. Desafortunadamente, la resistencia a las imágenes previas estará más cerca de la más débil de las dos funciones. En términos generales, la concatenación no es una buena forma de crear funciones hash: no vale la pena pagar su dinero, es decir, no es tan segura como podría suponer, dado su esfuerzo informático y el tamaño de salida con el que tiene que lidiar. Consulte esta respuesta para más información. Análisis y punteros.
Ofrecer la opción entre varias funciones hash es mucho mejor, ya que le permite seleccionar una que coincida con su arquitectura, para un mejor rendimiento. Tenga en cuenta que el hashing tiende a ser rápido de todos modos; cuando los archivos de hashing del disco, o los datos de la red, la función de hash rara vez es el cuello de botella. Al igual que con todos los problemas de rendimiento, lo primero que debe hacer es medir : no hay ningún problema de rendimiento a menos que se haya detectado y cuantificado de manera confiable.
La elección de la función hash también es clara cuando tiene que cumplir con regulaciones inflexibles (que podrían exigir el uso de una función "Aprobada", con una letra mayúscula).
En la práctica, muchos sistemas en los que se pueden utilizar múltiples funciones hash juntas lo hacen debido a la creencia irracional de que la criptografía es como la salsa ranchera, que puede hacer que el peor roadkill sea comestible, siempre y cuando se agregue lo suficiente.
Nota: no hay pruebas matemáticas de que alguna función hash determinada sea segura. En realidad, no hay ninguna prueba matemática de que pueda existir una función hash segura. Lo mejor que tenemos es la función hash que se implementó "en la naturaleza" durante mucho tiempo, y sobrevivió a los asaltos sin sentido de las hordas de criptógrafos enfurecidos. Las funciones SHA-2 (SHA-256, SHA-512) son tales funciones.