Я думаю о хешировании паролей пользователя с двумя различными солеными строками, одним сохраненным в коде, который является тем же для всех пользователей и другого сохраненного в базе данных, для которой у каждого пользователя есть их собственное уникальное значение.
Это было бы более эффективно, чем простое хранение значений в базе данных?
Любой совет, мнения appreiated.
Спасибо
Эффект является минет, если что-то вообще. Считайте, что статическая, жесткая кодированная соль можно рассматривать как не более, чем изменение алгоритма хеширования - это происходит точно так же каждый раз, поэтому он может также считаться частью алгоритма.
Но цель соли состоит в том, чтобы создать некоторую случайность, которая аналогична расширению (минимальной) прочности пароля, с целью создания офлайн растрескивания (включая радужные таблицы) больше ресурсов (без радуги потребует больше времени процессора, а радужные таблицы потребуют всех солей для всех строк).
Единственный способ, которым вы получите какое-либо значение из этого, в то время как статическая соль неизвестна - эквивалент алгоритма неизвестного. Если ваш двоичный файл или ваш источник доступен для злоумышленника, то обратное проектирование будет продемонстрировать алгоритм и жесткую соль.
И если этот вопрос пройдет публику, вам, вероятно, придется иметь дело с нарядом от многих энтузиастов, которые считают, что что-то не идеально, полностью сломано, даже если ваш продукт уже правильно, и дополнительный шаг просто бесполезный.
И, конечно же, вам придется иметь дело с проблемами обслуживания, имеющих статическую соль - обратная совместимость и исправления ошибок вокруг хеширования могут быть болью.
Очень маленькая выгода статических ключей (или солей) просто не стоит стоимости. Всегда делайте ключи и соли динамическими.