Este es un seguimiento de esta respuesta .
La respuesta es muy buena y me puso a pensar y hacer algunas investigaciones. He encontrado otra buena explicación en este sitio .
En algún momento, el autor dice:
Si el conjunto de letras de texto es [0123456789] {6} (queremos una tabla de arco iris con todas las contraseñas numéricas de longitud 6), y la función de hashing es MD5 (), un hash de un texto sin formato podría ser MD5 ("493823 ") - > "222f00dc4b7f9131c89cff641d1a8c50". En este caso, la función de reducción R () podría ser tan simple como tomar los primeros seis números del hash; R ("222f00dc4b7f9131c89cff641d1a8c50") - > "222004". Ahora hemos generado otro texto simple a partir del hash del texto anterior, este es el propósito de la función de reducción.
Sin embargo, no parece haber comprendido el uso de la reducción, ya que parece bastante arbitrario. Cómo reducir un hash a sus primeros números ayuda a recuperar el texto plano. ¿La elección de la reducción (que es la selección del primer número del hash) es realmente arbitraria? ¿Podría en lugar de tomar los primeros seis números, digamos, los últimos seis números?