Что касается # 1, вы, вероятно, можете предположить, что, если таблица users
скомпрометирована, они, вероятно, также скомпрометируют таблицу salt
, даже если вы ее как-то лучше защитите. Это только замедлит их немного, как это сделает скоростной удар.
Что касается # 2, то жестко запрограммированное солт-значение часто легко воссоздать с помощью декомпиляции или проверки памяти во время выполнения, даже при умеренном количестве запутывания кода. Это поможет повысить безопасность только в том случае, если ваше приложение строго размещено и никто не может получить доступ к вашему скомпилированному приложению.
Относительно # 3: Какова оптимальная длина для хэша пароля? (SO link) - 16 - это хорошо!
Что касается # 4, то внедрение «более истинных» случайных чисел не намного сложнее, в зависимости от платформы, с которой вы работаете. Например, если вы можете компрометировать некоторую производительность , чтобы сгенерировать ваше начальное / случайное число, вы, вероятно, можете вздохнуть с легкостью от того, насколько действительно случайна ваша соль.