У меня есть приложение winform
, у которого есть форма для входа в систему. Я храню мои пользователь регистрационной информации в базе данных с 3-мя параметры: имя пользователя, хэшируются пароль, соль:Запомнить меня checkbox
salt = random string that will be stored in database for every user
hashed password = MD5(MD5(inputPassword) + MD5(salt))
Я хочу иметь флажок с именем Remember me
в моей форме авторизации, что, когда пользователь вводит правильную информацию и проверить ее , в следующий раз, когда пользователь откроет программу, их пользовательская информация будет введена автоматически, пользователю просто нужно нажать кнопку login
.
Я не могу сохранить введенный пароль напрямую и в следующий раз заполнить его с помощью пароля textBox
, потому что я знаю некоторые программные средства, которые могут читать textBox
es, как это, и это не безопасно.
Вопрос:
Как я могу сделать это без сохранения пароля пользователя?
Если мне нужно сохранить некоторую информацию, как зашифровать их?
Необходимо ли изменить мою политику безопасности?
Обратите внимание, что это клиентское/серверное приложение и форма входа в систему, созданная для клиентской стороны.
Несмотря на то, что вы пытаетесь защитить пароли пользователей, выполнив MD5 (MD5 (inputPassword) + MD5 (соль)), вы должны использовать [правильную функцию деривации пароля] (http: // msdn. microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes%28v=vs.110%29.aspx). Современная система может легко попробовать более 1 000 000 000 паролей в секунду с помощью GPU с помощью вашего пароля. С достаточно большим 'ItterationCount' для' Rfc2898DeriveBytes' вы можете легко довести это число до 100-секундных паролей в секунду. –