2016-03-15 3 views
0

У меня есть веб-приложение MVC 4, для которого требуется вход в систему. У большинства пользователей нет учетных записей электронной почты. Если кто-то забыл свой пароль, как его сбросить? Все системы восстановления пароля, которые я нахожу, требуют какой-то учетной записи электронной почты. Я просто хочу что-то простое, например, сбросить его до пароля по умолчанию, и пользователь может сменить пароль после входа в систему с использованием этого пароля по умолчанию. Проблема заключается в том, что пароль зашифрован в SQL Server. Я не могу найти инструмент, который шифрует пароль.MVC 4 Шифрует пароль по умолчанию

+4

Пароли не должны быть зашифрованы - они должны быть хэшированы (и соленые). Если у ваших пользователей нет учетной записи электронной почты, вы должны попросить у них вопрос безопасности в учетной записи создать и разрешить им сбросить пароль на основе этого секретного вопроса. Также нет «пароля по умолчанию» - им предоставляется новый пароль сразу. –

ответ

1

Прежде всего, наиболее широко используемые реализации аутентификации имеют значительную длину, чтобы предотвратить учет учетных данных пользователей в обратимом (например, текстовом формате или что-то, что может быть зашифровано). Вместо этого вы должны использовать hash & текстовые данные солевой плоскости и сравнить их с сохраненным значением.

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