Entiendo que la adición de una sal proporciona algo de protección, porque el atacante ya no puede simplemente buscar el valor de hash en una tabla de arco iris. Sin embargo, todavía es posible escribir un programa de craqueo que busque el hash y luego le aplique la sal, ya que la sal en sí no está necesariamente encriptada. Por lo tanto, una contraseña con sal es aún crackeable, aunque el proceso de craqueo tardará más. Mi pregunta es cuánto tiempo más tardará. ¿La sal aumenta la complejidad del tiempo de agrietamiento en un orden de magnitud significativo? ¿Cuáles son las complejidades de tiempo respectivas de agrietar un hash sin sal y agrietar un hash salado usando la misma tabla de búsqueda?
Otra pregunta un tanto relacionada: leí en Practical Unix and Internet Security que la función Crypt modular que se usa en algunos sistemas Unix no XOR la sal con el hash, y solo la encaja en el comenzando. ¿Esto no anula el propósito de tener una sal, ya que el hash sin sal se puede extraer de la cadena de la contraseña y atacar como si la sal no estuviera allí en primer lugar?