Подумайте о сайтах, которые вы запрограммировали - держу пари, что самые мощные пользователи в этих системах имеют очень распространенные имена пользователей, такие как admin , root и т. Д. Как злоумышленник я могу создать предварительно вычисленный хэш-список, содержащий наиболее распространенные имена пользователей с самыми слабыми и наиболее распространенными паролями - то есть, если веб-программист достаточно наивен, чтобы засолить их пароли с именами пользователей, моя работа как атакующему стало намного проще - столкновения очень предсказуемы.
Использование адреса электронной почты в качестве соли лучше, но применяется тот же принцип. Предполагая, что я взломал одну базу данных, которая использует соль на основе электронной почты, мне будет намного легче взломать любую другую базу данных, которая делает то же самое - по крайней мере, для комбинаций электронной почты и пароля, которые существуют в базах данных. (Учитывая количество повторного использования логина, это очень вероятно). Это не так просто, как с солями имени пользователя, но есть столкновения, ожидающие обнаружения.
Как программист, я действительно хочу получить хеш пароля, который никогда не будет конфликтовать - никогда. Универсально уникальный хэш для каждого пользователя, которого нет ни в одной другой базе данных в мире. Это высокий заказ, но он выполним с достаточно длинной, случайно сгенерированной солью.
В игре присутствует эффект иммунитета к стаду - использование плохой соли облегчает атакующим подобные системы после того, как они скомпрометировали вашу базу данных. Сильная соль всегда защитит ваших пользователей и поможет другим базам пользователей быть скомпрометированными.