2013-10-23 128 views
0

我有這個ASP.NET應用程序運行良好。現在我需要將用戶從Windows Forms應用程序添加到ASP.NET成員資格數據庫中。我已經能夠成功地從Windows窗體應用程序中使用Membership類,但添加用戶需要很長時間,我必須添加大量用戶。ASP.NET成員資格散列密碼

所以,我一直在試圖將這些用戶直接添加到數據庫,但無法正確地對密碼進行散列處理。

這裏是我使用生成的密碼散列代碼:

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

有誰知道怎麼做這個正確的方式?

回答

0

使用Crypto.HashPassword方法

請參考以下鏈接:

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

+0

謝謝您的回答,特洛伊是錯的哈希算法asp.net團隊使用,如果你看到的評論在那個頁面上你會看到,正如在同一篇文章中所述,使用的算法是HMACSHA256。我測試了兩個,他們沒有工作。如果你可以提供一些示例代碼,那就太好了。 – jcgalveza