Cómo puede bcrypt tener sales incorporadas?

rtículo de @Coda Hale "Cómo almacenar una contraseña de forma segura" afirma que:

bcrypt tiene sales incorporadas para prevenir ataques de la mesa arcoiris.

Citaeste pape, que dice que en la implementación de @BS de OpenBbcrypt:

OpenBSD genera la sal bcrypt de 128 bits a partir de una secuencia de claves arcfour (arc4random (3)), sembrada con datos aleatorios que el núcleo recopila de los tiempos del dispositivo.

No entiendo cómo puede funcionar esto. En mi concepción de una sal:

s necesario que sea diferente para cada contraseña almacenada, de modo que se deba generar una tabla de arcoíris separada para cada Debe almacenarse en algún lugar para que sea repetible: cuando un usuario intenta iniciar sesión, tomamos su intento de contraseña, repetimos el mismo procedimiento de sal y hash que hicimos cuando originalmente almacenamos su contraseña y comparamos

Cuando estoy usando Devise (un administrador de inicio de sesión de Rails) con bcrypt, no hay una columna de sal en la base de datos, así que estoy confundido. Si la sal es aleatoria y no se almacena en ningún lado, ¿cómo podemos repetir de manera confiable el proceso de hash?

En breve,how bcrypt puede tener sales incorporadas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta