Я всегда использовал правильную строку ввода для каждой строки при хешировании паролей для хранения базы данных. Для моих нужд хранение соли в БД рядом с хешированным паролем всегда работало нормально.
Однако некоторые люди рекомендуют хранить соль отдельно от базы данных. Их аргумент заключается в том, что если база данных скомпрометирована, злоумышленник все равно может создать таблицу радуги, принимая во внимание определенную солью, чтобы взломать одну учетную запись за раз. Если у этой учетной записи есть привилегии администратора, ему может даже не понадобиться взломать другие.
С точки зрения безопасности стоит ли хранить соли в другом месте? Рассмотрим веб-приложение с кодом сервера и БД на одном компьютере. Если соли хранятся в плоском файле на этой машине, есть вероятность, что если база данных будет скомпрометирована, файл солей тоже будет.
Есть ли какие-либо рекомендуемые решения?