我正在实现一个使用我的富域模型的自定义 MembershipProvider 类。我很犹豫,因为我想确保我正确处理密码。我想对数据库中的密码进行哈希处理,但我似乎找不到任何我相信在 ASP.NET 中执行此操作的最佳实践或示例代码。是否可以编写自定义 MembershipProvider 类但以某种方式利用基类来处理密码详细信息?
问问题
136 次
2 回答
1
您最好的选择可能是继承SqlMembershipProvider
并覆盖除 之外的大多数方法EncryptPassword
,这将使用默认的 ASP.NET 行为。
public class CustomMembershipProvider : SqlMembershipProvider
{
}
于 2012-07-17T19:25:02.410 回答
0
不要害怕自己散列密码。只是需要注意的几件事。
1)使用不被破坏的哈希算法(MD5是,sha256/sha512不是现在)
2) 永远记得用你的散列密码存储唯一的散列,这样你就有hash = hashfunction( password + salt)
. 这是为了防止有人在数据库被盗时使用预先计算的哈希轻松获取您的密码。
3)(可选)散列几次,几百次或几千次,并用您的散列密码存储圆形计数器。这将进一步减缓任何试图从被盗数据库中获取明文密码的人的速度。
于 2012-07-17T19:35:00.213 回答