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