【问题标题】:Hashing passwords in ASP.NET membership散列 ASP.NET 成员中的密码
【发布时间】:2013-11-02 03:33:31
【问题描述】:

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

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

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

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);
}

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

【问题讨论】:

    标签: asp.net hash passwords membership


    【解决方案1】:

    使用Crypto.HashPassword方法

    参考此链接:

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

    【讨论】:

    • 感谢您的回答,Troy 对 asp.net 团队使用的哈希算法是错误的,如果您在该页面上看到 cmets,您会看到,正如在同一篇文章中所述,使用的算法是 HMACSHA256。我已经测试了两者,但它们都不起作用。如果您能提供一些示例代码,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 2011-09-08
    相关资源
    最近更新 更多