@ ManyelReyes имеет правильный ответ, и вот почему:
Соли защищают от радужных таблиц.Радужная таблица - это предварительно вычисленный список хэшей общих паролей.
Итак, если вы просто сохранили хэш пароля для кого-то, и он использовал общий пароль, то злоумышленник может найти его в радужной таблице и узнать пароль.
Добавив что-то случайное ккаждый пароль, который вы делаете, радужные таблицы не работают.Они работают, потому что их можно рассчитать заранее.Когда вы добавляете соль в пароль пользователя, радужная таблица не может быть предварительно рассчитана, так как соль случайна.Если вы использовали одну и ту же соль для каждого пользователя, они могли бы создать радужную таблицу, используя эту соль.
Поскольку это не меняет безопасность, обеспечиваемую солями, чтобы злоумышленник знал, что вы используете их и что такое сольВы можете хранить соль в открытом виде в пользовательской таблице.(Я также добавил их к результату хеширования, тогда мне не нужен дополнительный столбец, если хеш всегда имеет одинаковую длину.)