SimpleMembershipProvider指定使用散列SHA512,出错了

时间:2014-02-14 00:58:24

标签: asp.net-mvc hash passwords simplemembership sha512

我只是在摆弄一些设置以更好地了解SimpleMembershipProvider。 背景信息:

MVC 4,.Net 4.0和实体框架。 我也使用标准的互联网Mvc应用程序(为方便起见)。

问题/或问题:

在Web.config文件中,我已经设置hashalgorithmType应该是SHA512,但是当我注册一个成员时,数据库中的结果只有68个字符长。 SHA512应为128个字符(快速谷歌)。

为什么?我还需要改变一些设置吗?或者我是否需要覆盖一些“setpassword”方法来明确使用SHA512?

或者我应该使用外部来源,例如Bcrypt并以某种方式将它整合到我当前的解决方案中?(在这种情况下,如果有人能指出我正确的方向进一步阅读,那将是很好的)

web.config代码:

<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
      <providers>
        <clear/>
        <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
      </providers>
</roleManager>

<membership defaultProvider="SimpleMembershipProvider" hashAlgorithmType="SHA512">
      <providers>
        <clear/>
        <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
      </providers>
</membership>

1 个答案:

答案 0 :(得分:1)

我不相信您可以像在较旧的成员资格提供程序中那样更改SimpleMembership中的哈希算法。 Answer in this QA describes the hashing algorithm used in SimpleMembership

由于您刚刚开始学习SimpleMembership,我想我应该提到它已经depreciated for ASP.NET Identity。您可能希望花时间学习这一点,因为这是微软未来的发展方向。它更加灵活,您可以插入任何您需要使用的散列算法。