在ASP.NET成员资格中隐藏密码

时间:2013-10-23 17:46:35

标签: asp.net hash passwords membership

我有这个运行正常的ASP.NET应用程序。现在我需要从Windows窗体应用程序将用户添加到ASP.NET成员资格数据库。我已经能够成功使用Windows窗体应用程序中的成员资格类,但添加用户需要很长时间,而且我必须添加大量用户。

所以,我一直试图将这些用户直接添加到数据库中,但无法正确获取密码。

以下是我用来生成散列密码的代码:

public static string EncodePassword2(string pass, out string saltb64)
{
    saltb64 = Crypto.GenerateSalt();
    byte[] bytes = Encoding.Unicode.GetBytes(pass);
    byte[] src = Convert.FromBase64String(saltb64);
    byte[] dst = new byte[src.Length + bytes.Length];
    Buffer.BlockCopy(src, 0, dst, 0, src.Length);
    Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);
    HashAlgorithm algorithm = HashAlgorithm.Create("HMACSHA256");
    byte[] inArray = algorithm.ComputeHash(dst);
    return Convert.ToBase64String(inArray);
}

有谁知道如何以正确的方式做到这一点?

1 个答案:

答案 0 :(得分:0)

使用 Crypto.HashPassword 方法

请参阅此链接:

http://www.troyhunt.com/2012/07/stronger-password-hashing-in-net-with.html