¿Cuál es el algoritmo hash menos costoso?

No sé mucho de algoritmos hash.

Necesito calcular el hash de un archivo entrante en vivo en Java antes de enviar el archivo a un sistema remoto (un poco como S3) que requiere un hash de archivo en MD2 / MD5 / SHA-X. Este hash no se calcula por razones de seguridad, sino simplemente por una suma de comprobación de coherencia.

¿Puedo calcular este hash en vivo mientras reenvío el archivo, con un DigestInputStream de la biblioteca estándar de Java, pero me gustaría saber qué algoritmo es el mejor para usar para evitar problemas de rendimiento al usar DigestInputStream?

Uno de mis colegas anteriores probó y nos dijo que calcular el hash en vivo puede ser bastante costoso en comparación con una línea de comandos de Unix o en un archivo.

Editar sobre la optimización prematura: Trabajo en una empresa que tiene como objetivo ayudar a otras empresas a desmaterializar sus documentos. Esto significa que tenemos un lote que maneja transferencias de documentos de otras compañías. En el futuro, apuntamos a millones de documentos por día y, de hecho, el tiempo de ejecución de este lote es importante para nuestro negocio.

Una optimización de hash de 10 milisegundos por 1 millón de documentos por día es un tiempo de ejecución diario reducido de 3 horas, lo cual es bastante grande.

Respuestas a la pregunta(3)

Su respuesta a la pregunta