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