2014-02-14 53 views
0

我只是擺弄一些設置來更好地瞭解SimpleMembershipProvider。 背景信息:SimpleMembershipProvider指定使用哈希SHA512,出了點問題

MVC 4,。NET 4.0和實體框架。 我也使用標準的Internet 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

我不相信您可以像在舊的成員資格提供程序中那樣更改SimpleMembership中的散列算法。 Answer in this QA describes the hashing algorithm used in SimpleMembership

既然你剛剛開始學習SimpleMembership,我想我應該提及它已被depreciated for ASP.NET Identity。你可能想花時間學習這個,因爲這是微軟未來的方向。它更加靈活,你可以插入任何你喜歡使用的哈希算法。

+0

感謝您的正確方向。我不知道方法的改變。我肯定會進一步研究這一點。再次感謝凱文! –