Я уже некоторое время вертелся вокруг вопроса о том, как хранить пароли в моей БД. Это мой первый раз, когда я создаю безопасное приложение с веб-входом, поэтому я хотел установить некоторые передовые методы.
Во-первых, я прочитал о хешировании и солении. Похоже, идея в том ...
И это заставило меня задуматься ... Если хакер знает вашу соль (потому что она где-то хранится в базе данных, возможно, столбец с именем this_is_not_the_salt_ur_looking_for
или что-то столь же неоднозначное) они могут повторно сгенерировать словарь паролей и получить доступ.
Тогда у меня возникла идея. Что, если бы вы сохранили свою соль внутри поля хешированного пароля. Итак, выполните шаги 1–4 (случайное создание соли), затем на шаге 5 вставьте соль в пароль в место, известное классу интерпретации пароля или службе:
xxxxxsaltvaluexxxxxxxxxxxxxxxx
, где x - хешированные строковые значения. Кто-нибудь может увидеть какие-нибудь проблемы с этим? это просто совершенно ненужно?
Ответ:
Нет причин, по которым этого нельзя было бы сделать. Как утверждает Яхья, другие методы защиты пароля включают двойное (или n) хеширование. С другой стороны, BCrypt выглядит как хороший способ почти полностью остановить атаки методом перебора, но я не смог найти надежную библиотеку для C #
Спасибо!
TTD