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