¿Qué tan seguro es confiar en hashes para la identificación de archivos?

Estoy diseñando un software de almacenamiento en la nube sobre una pila LAMP.

Los archivos podrían tener una ID interna, pero tendría muchas ventajas almacenarlos no con una identificación incremental como nombre de archivo en los sistemas de archivos de los servidores, sino usando un hash como nombre de archivo.

También los hashes como identificador en la base de datos tendrían muchas ventajas si la base de datos actualmente centralizada se fragmentara o descentralizara o se estableciera algún tipo de entorno de alta disponibilidad maestro-maestro. Pero todavía no estoy seguro de eso.

Los clientes pueden almacenar archivos bajo cualquier cadena (generalmente algún tipo de ruta y nombre de archivo).

Se garantiza que esta cadena será única, porque en el primer nivel hay algo así como "cubos" que los usuarios deben registrar como en Amazon S3 y en el almacenamiento de Google.

Mi plan es almacenar archivos como hash de la ruta definida del lado del cliente.

e esta forma, el servidor de almacenamiento puede servir directamente el archivo sin necesidad de que la base de datos pregunte qué ID es porque puede calcular el hash y, por lo tanto, el nombre de archivo sobre la marcha.

Pero tengo miedo de las colisiones. Actualmente pienso en usar hash SHA1.

Escuché que GIT usa hashes y también identificadores de revisión.

Sé que las posibilidades de colisiones son realmente muy bajas, pero posibles.

Simplemente no puedo juzgar esto. ¿Confiaría o no en el hash para este propósito?

Podría también alguna normalización de la codificación de la ruta. Tal vez base64 como nombre de archivo, pero realmente no quiero eso porque podría desordenarse y las rutas podrían ser demasiado largas y posiblemente otras complicaciones.

Respuestas a la pregunta(2)

Su respuesta a la pregunta