0

这篇文章有点问我需要什么但不是很好......如何加密密码

本质上我有一个模型“用户”

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。在我看来,它比会员提供者要好得多!

4

1 回答 1

1

安全性不应该掉以轻心,最好不要重新发明。简单并不一定意味着安全。因此,您可以使用现有的会员提供程序,它已经为您实现了安全性,并且只在数据库中存储了密码的散列版本。

如果您不想使用会员提供程序,而是自己实现密码哈希,good guide那么您可能会考虑在开始编码之前先了解一下。

这是生成密码哈希的安全方法:

存储密码

  1. 使用 CSPRNG 生成长随机盐。
  2. 将盐添加到密码中,并使用标准加密散列函数(例如 SHA256)对其进行散列。
  3. 将盐和哈希都保存在用户的数据库记录中。

验证密码

  1. 从数据库中检索用户的盐和哈希。
  2. 将盐添加到给定密码并使用相同的散列函数对其进行散列。
  3. 将给定密码的哈希值与数据库中的哈希值进行比较。如果它们匹配,则密码正确。否则,密码不正确。
于 2013-03-17T14:07:22.537 回答