Было пара из замечательных дискуссий о передовых методах соли, и кажется, что подавляющая рекомендация - генерировать разные соли для каждого пароля и хранить их вместе с паролем в база данных.
Однако, если я правильно понимаю назначение соли, это уменьшить вероятность того, что вы будете скомпрометированы атаками радужного стола. Итак, я понимаю, что, сохраняя его в базе данных, было бы оптимальным изменить его для каждого пользователя, но что, если соль не находится рядом с базой данных? Если я сохраню в коде одно солт-значение (которое на веб-сервере будет в скомпилированном dll), разве это не послужит той же цели, если злоумышленник каким-то образом получит доступ к базе данных? Мне кажется, это было бы более безопасно.