2009-12-21 3 views
0

В моем приложении пароль зашифрован, и если пользователь забывает пароль, его невозможно восстановить. Теперь мы отменяем эту учетную запись пользователя и создаем новую. Теперь мне нужен правильный метод для восстановления пароля. Вход выполняется с помощью инструмента настройки Asp.net. Как я могу восстановить свой пароль, используя это? Есть ли альтернативный вариант для этого? Как я могу расшифровать свой пароль в базе данных?Восстановление пароля с использованием Asp.net

+0

Вы используете стандартный поставщик членства в ASP.NET? – RickNZ

ответ

3

Идея состоит в том, что никто не может расшифровать пароль (включая владельца базы данных). Обычно вы должны генерировать новый пароль &, чтобы отправить его пользователю, а также шифровать его &, помещая его в базу данных.

0

Как вы шифруете свои пароли? Это одностороннее шифрование и может быть расшифровано только с помощью правильного пароля? Если так - игра закончилась.

Вы можете изменить метод шифрования, чтобы его можно было дешифровать с помощью ключа (который не является паролем, это может быть, например, комбинация идентификатора пользователя, даты рождения и секретного слова, которое он вводит, который сохраняется в незашифрованном БД).

Затем пароль можно дешифровать с помощью ключа, и все будут счастливы.

+0

Как я могу это сделать? – Nandini

+0

Читайте об использовании шифрования AES с использованием алгоритма Rijndael. Это очень легко. http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx – Faruz

1

Как уже говорилось, , надеюсь, пароль зашифрован в базе данных одним способом. Один метод, используемый многими сайтами для восстановления , должен генерировать хэш основного имени пользователя и адреса электронной почты пользователей. Попросите их предоставить эту информацию, а затем хэш. Если он совпадает, сгенерируйте новый случайный пароль, зашифруйте его и перезапишите старый пароль. Отправьте по электронной почте пользователю новый пароль на адрес электронной почты, который они изначально предоставили, и отметьте строку в базах данных, чтобы заставить их изменить ее при следующем входе в систему (обычно это делается, если пароли создаются вручную).

Несколько сайтов, которые я знаю, позволяют вам восстановить свой пароль, и я предполагаю, что они используют обратимый (то есть симметричный) алгоритм ключа для генерации пароля. Чтобы сделать это и не располагать его владельцем сайта, вам необходимо предоставить пользователю две части информации (имя пользователя и известную им соль), которые применяются для защиты данных входа и могут быть использованы для восстановления Это.

Вы можете посмотреть криптографию с симметричным ключом на MSDN для получения дополнительной информации. На самом деле, хотя я рекомендую против, используя эту технику, генерация нового пароля предпочтительнее, если это возможно.