¿Quieres mejorar esta pregunta? Actualice la pregunta para que esté relacionada con el tema de Unix y Linux Stack Exchange.
Cerrado hace 2 años.
Mejorar esta pregunta
Lo leí usando el sha1sum
ejecutará el algoritmo SHA-1 y le dará un resultado "único", pero ¿cómo puede ser eso?
sha1sum
te da un hash de 40 caracteres, como este:
e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
Tiene 40 caracteres y tiene caracteres hexadecimales, por lo que el hash puede tener como máximo 16 combinaciones.
Esto debería significar que, para dos archivos aleatorios cualesquiera, hay una pequeña posibilidad de que su suma hash sea exactamente la misma, ¿verdad?
Respuesta aceptada:
Un hash SHA-1, como cualquier hash, no es único; de hecho, se han encontrado colisiones (y, lo que es más importante, se han creado).
La propiedad deseable de una función hash es que es difícil construir dos archivos que produzcan el mismo hash, no que los hash producidos sean únicos (como mencionas, una suma SHA-1 tiene 160 bits, por lo que solo hay 2 hash diferentes); difícil, lo que significa que no puede encontrar una colisión más rápido que la búsqueda de fuerza bruta. Si elige un archivo, otro archivo elegido al azar tiene una probabilidad de uno en dos de tener el mismo hash. SHA-1 se considera inseguro desde 2005; verás las probabilidades dadas allí como uno en 2, gracias al ataque de cumpleaños (las probabilidades allí son las de encontrar dos archivos que colisionan en un gran pajar, no las de encontrar un archivo que colisiona para un objetivo específico).