Si hasta este momento lo que hemos tratado es de averiguar una contraseña o romper su correspondiente hash, con las rainbow tables (tablas arcoíris) vamos a hacer un ejercicio inverso.
Una rainbow table es una tabla que contiene el hash (realmente parte de él) producido por multitud de contraseñas. De esta manera, calculando el hash de la contraseña que queremos descifrar y comparándolo con el contenido de la tabla obtendremos una serie de candidatos a contraseñas, luego de ir infiriendo el resto del hash, se puede averiguar lo que falte.
Pongamos un ejemplo (no real, solo es a efectos didácticos).
Supongamos que tenemos una contraseña cuyo hash es 12345678; en nuestra tabla rainbow tendremos una serie de hashes no completos, por ejemplo, los 3 últimos caracteres 567, 345, 123, 678…
El software compara los caracteres y con las coincidencias, a través de una serie de funciones multiplicativas, infiere el resto del hash y por tanto la contraseña.