2012-07-17 53 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 
{ 
} 
相关问题