Я хочу сохранить имя пользователя и пароль в файлах cookie. Я зашифровал пароль, используя технику Хеширования MD5. , так как я могу хранить этот зашифрованный пароль в файлах cookie?Как сохранить зашифрованный пароль в файлах cookie на C#?
ответ
Вы не должны хранить имя пользователя и пароль в файлах cookie, потому что это отправлено клиенту. Даже если он хэширован, особенно если вы собираетесь напрямую сравнивать хешированный пароль, полученный в файле cookie, с одним в базе данных. Это нарушает цель хэширования.
Если вы хотите использовать сеанс пользователя между запросами, вы должны использовать идентификатор сеанса. Я не эксперт C#, но с быстрым гугле я нашел это:
HttpContext.Current.Session.SessionID
Вот что я хотел бы хранить в куки.
Но я сравниваю хешированный пароль, который находится в пароле базы данных с хешированным паролем. – Nik
Это проблема. Цель хэширования заключается в том, что если кто-то получит доступ к хэшированным паролям, они не смогут аутентифицироваться на сервере, потому что ваш сервер снова должен запустить хэш-функцию, и он не будет соответствовать хеш-памяти, хранящейся в базе данных. –
Извините за двойной комментарий, хотя нажатие enter введет пустую строку вместо отправки.Ну, я говорил, что если вы сравните данные, полученные с хэшами базы данных напрямую, если кто-то получит доступ к хэшам, они смогут аутентифицироваться на сервере. Цель хэширования заключается в том, что в базе данных есть разные данные, которые отправляется клиенту. –
Thats not the way. Вы добавляете некоторые параметры, такие как временная метка, пользовательский агент, текущий ip, имя пользователя и т. Д. Но не Пароль. Теперь вычислите хеш для вашего токена и отправьте его как файл cookie. То, как делается токен аутентификации.
Для аутентификации пользователя при входе в систему, вычислите хэш на своем сервере и сравните его с таковым в БД. Никогда не отправляйте свой хешированный пароль в режиме онлайн. Для более качественных критериев вы должны использовать соленый хеш для паролей. См. this, чтобы узнать о солях.
Кроме того, MD5 не хеширует, а не шифрует. Между ними существует большая разница. Кроме того, используйте SHA вместо MD5. См. this.
Я не рекомендовал бы это к любому ...
Вместо сохранения получить пароли от пользователя. сохраните их в сеансе для использования через период подключения пользователей, и если вы хотите, чтобы пользователь использовал тот же пароль и позже входил в систему, вам понадобится база данных, в которой хранятся данные.
Таким образом, чтобы сохранить информация, как следовать
Session["username"] = txtusername.Text;
затем использовать его на другую страницу или где-то еще
string username = Session["username"].toString();
http://stackoverflow.com/questions/2100356/is-it-secure-to-store -passwords-in-cookies –
Нет, просто .. .NO –
@KayNelson I m шифрует этот пароль. так это безопасно или нет? – Nik