2012-07-17 54 views
0

我正在實現使用我的豐富域模型的自定義MembershipProvider類的過程。我很猶豫,因爲我想確保我能正確處理密碼。我想將密碼散列在數據庫中,但我似乎無法找到任何我信任在ASP.NET中執行此操作的最佳做​​法或示例代碼。是否有可能編寫一個自定義的MembershipProvider類,但不知何故利用基類來處理密碼細節?在ASP.NET中自定義MembershipProvider類中處理密碼

回答

0

不要害怕自己散列密碼。幾件事情要注意。

1)用未受損的哈希算法(MD5是,SHA256/SHA512不如現在)

2)一定要記住存儲唯一的哈希值與哈希密碼,讓你有hash = hashfunction(password + salt)。這是爲了防止某人在數據庫被盜時使用預先計算的哈希來輕鬆獲取您的密碼。

3)(可選)散列幾次,幾百次或幾千次,然後用散列密碼存儲圓形計數器。這將進一步減慢任何試圖從被盜數據庫獲取明文密碼的人。

+0

你知道任何代碼示例嗎? – 2012-07-17 19:37:08

+0

http://crackstation.net/hashing-security.htm – 2012-07-17 19:44:51

1

最好的辦法可能是從SqlMembershipProvider繼承,然後覆蓋除EncryptPassword之外的大多數方法,這些方法將使用默認的ASP.NET行爲。

public class CustomMembershipProvider : SqlMembershipProvider 
{ 
} 
相關問題