2010-05-22 4 views

ответ

3

Типичный рабочий процесс включает в себя создание значения соли и использование этого для хеширования пароля, а затем сохранение их в строке. Это подробно описано во многих местах и ​​легко выполняется поиск.

Если вы действительно хотите просто способ быстро хэширования или зашифровать без соли смотреть на FormsAuthentication.HashPasswordForStoringInConfigFile

+1

+1 за упоминание соли. Несостоявшийся хэш более уязвим для таблиц поиска радуги, чем соленый. – Tim

2

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

0

Лучший подход я нашел (и так как facebook точно делает это)

когда пользователь время ввести в браузере, JavaScript шифровать первый, а затем отправить в приложение, зашифровать с MVC, наконец, хранить, что в вас базе данных.

, в то время как пользователю потребуется этот пароль только для входа в систему, когда они забыли. сделать что-то вроде сброса пароля = D

http://forums.asp.net/t/1211478.aspx/1?How+do+I+use+Sha256+to+Encrypt+a+String+

1

Самый простой способ я нашел использует Membership Provider from ASP.NET. Затем вы можете настроить его в web.config как это:

<system.web> 
    <membership> 
    <providers> 
     <clear /> 
     <add 
     name="AspNetSqlMembershipProvider" 
     (...) 
     passwordFormat="Hashed" 
     (...) /> 
    </providers> 
    </membership> 

Смежные вопросы