2011-03-16 173 views
0

我创建一个自定义在ASP.Net Web窗体“添加用户”页面,都创下了问题。我可以将所有数据插入到成员资格表中,但密码以纯文本形式存储,并且密码salt已被硬编码。ASP.NET的密码哈希和密码盐

我如何去散列密码,以便用户可以登录(如隶属框架检查密码哈希,而不是明文密码)。另外,盐是完全随机的,还是它以某种方式与密码哈希链接?

任何帮助将不胜感激,

马克

回答

1
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15"> 
     <providers> 
     <clear /> 
     <add 
      name="SqlProvider" 
      type="System.Web.Security.SqlMembershipProvider" 
      connectionStringName="MySqlConnection" 
      applicationName="MyApplication" 
      enablePasswordRetrieval="false" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="true" 
      requiresUniqueEmail="true" 
      passwordFormat="Hashed" /> 
     </providers> 
    </membership> 

看到了passwordFormat = “散列” 中提到的行。您需要制定此设置以使密码散列。 PasswordFormat有三个值。你选择了你想要的,并相应地配置你的应用程序。

+0

Upvoted,但有没有办法添加盐? – Ben 2011-03-16 21:51:58

+0

@Ben:只有通过实现自定义成员资格提供程序 – LukeP 2011-04-29 21:18:21