Molti algoritmi di hashing sembrano avere un digest di messaggi a lunghezza fissa come output.
Se computo l'hash md5 di due stringhe:
>>> hashlib.md5("This is a really really long text string to make a hash out of").hexdigest()
'2916991b5ebba69ab38a84a0a72b4176'
>>> hashlib.md5("Short").hexdigest()
'30bb747c98bccdd11b3f89e644c4d0ad'
Ricevo un'uscita di 32 caratteri per ciascuno, anche se c'è una differenza significativa nelle lunghezze degli input. E 'teoricamente possibile che io possa inventare due (o più) input completamente diversi che generano lo stesso output, dal momento che ci sono infinite possibilità per un input e solo un numero finito di caratteri con cui lavorare per l'output?
Se sì, qual è la probabilità di trovare un altro input che generi lo stesso output?