0

正常に動作しているこの 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);
}

これを正しい方法で行う方法を知っている人はいますか?

4

1 に答える 1

0

Crypto.HashPasswordメソッドを使用 する

このリンクを参照してください:

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

于 2013-10-24T10:31:34.143 に答える