这篇文章有点问我需要什么,但不是很好...... How to encrypt password
基本上我有一个模型“用户”
Public Class User
Public Property ID As Integer
Public Property NickName As String
Public Property EmailAddress As String
Public Property Password As String
End Class
我希望能够做到这样......
Public Class User
Public Property ID As Integer
Public Property NickName As String
Public Property EmailAddress As String
Public Property Password As String
Get
Return Password
End Get
Set(value As String)
Password = DoMyHashing(value)
End Set
End Property
End Class
有没有办法简单地做到这一点?
编辑:此后我开始使用使用联合身份系统的BrockAllen.MembershipReboot。在我看来,它比会员提供者要好得多!
答案 0 :(得分:1)
安全不应该轻微,甚至最好不要重新发明。 简单并不一定意味着安全。因此,您可以使用已为您实现安全性的现有成员资格提供程序,并仅在数据库中存储密码版本的密码。
如果您不想使用成员资格提供程序但是自己实施密码哈希,那么在进入编码之前,您可能会考虑使用good guide
。
这是一种生成密码哈希的安全方法:
存储密码
- 使用CSPRNG生成长的随机盐。
- 将盐加入盐中 密码并使用标准加密哈希函数对其进行哈希处理 作为SHA256。
- 将salt和hash都保存在用户的数据库中 记录。
醇>验证密码
- 从数据库中检索用户的salt和hash。
- 加盐 到给定的密码并使用相同的散列函数散列它。
- 将给定密码的哈希值与来自的哈希值进行比较 数据库。如果匹配,则密码正确。否则, 密码不正确。
醇>