Mi comprensión del hashing es, en el mejor de los casos, conceptual y asumo cosas de las que no estoy seguro y me lleva a una pregunta que ni siquiera sé si está fundada o no. Por favor, corrija mis declaraciones a continuación si algo está mal.
El hash para una cadena dada tiene una longitud definida y hay un número infinito de cadenas originales que pueden dar el mismo hash. Un ejemplo de la función de hash que escuché sería el módulo 5. Entonces, si un usuario tiene una contraseña que es 6, entonces 11, 16, 21 y así sucesivamente también registrarán al usuario.
Suponiendo (aunque probablemente esté equivocado) que prácticamente las cadenas que dan el mismo hash estarán muy alejadas. Diga que la contraseña original es:
hunter2
La "segunda" cadena que caería en este cubo sería un poco más larga que la entropía del hash. Algo como:
LKjsd!sqdJhjsd44qsd5qd5823!é"jsdfhd=qksjdkqsjdkqsjdkquy!erqsdqsdqq
Tan poco práctico que las colisiones no importan realmente ya que nadie usaría una contraseña como la segunda y ni siquiera hablaremos de las terceras colisiones.
Así que mi pregunta es:
Si el hash puede verse como módulo 5, ¿qué impide que alguien diga que si el valor en DB es 1, entonces el valor más probable es 6, ya que 11, 16, etc. no son prácticos?