Muchos algoritmos de hash parecen tener un resumen de mensajes de longitud fija como salida.
Si calculo el hash md5 de dos cadenas:
>>> hashlib.md5("This is a really really long text string to make a hash out of").hexdigest()
'2916991b5ebba69ab38a84a0a72b4176'
>>> hashlib.md5("Short").hexdigest()
'30bb747c98bccdd11b3f89e644c4d0ad'
Obtengo una salida de 32 caracteres para cada una, aunque hay una diferencia significativa en la longitud de las entradas. ¿Es teóricamente posible que pueda encontrar dos (o más) entradas completamente diferentes que generen la misma salida, ya que hay infinitas posibilidades para una entrada y solo un número finito de caracteres para la salida?
En caso afirmativo, ¿cuál es la probabilidad de encontrar otra entrada que genere la misma salida?