Допустим, вы не использовали соль, а злоумышленник получил ваши хэши. Все, что ей нужно сделать, это сравнить хеши с таблицей поиска и посмотреть, предназначены ли какие-либо из них для известных паролей. Допустим, таблица содержит миллион паролей. Она может очень эффективно проверить все ваши хеши на наличие миллиона возможных паролей.
Теперь предположим, что тот же злоумышленник получил ваши хэши, но они засолены. Для каждого хеша, который она хочет проверить, ей нужно будет взять пароль-кандидат, применить соль, вычислить новый хеш и сравнить его с хешем, который вы сохранили. Теперь она должна сделать кучу вычислений, и это не так эффективно. (В качестве альтернативы она могла бы иметь справочную таблицу со всеми возможными солями, но все в порядке, тогда ей нужно иметь справочную таблицу, которая на порядки больше, чем таблица без солей.)
Все дело в том, чтобы сделать количество ресурсов, необходимое для взлома хэшей, больше, чем оно того стоит атакующему.