私は独自のカスタム メンバーシップ プロバイダーを作成していますが、以下に示すメンバーシップ プロバイダー独自の EncodePassword メソッドを使用しています。
internal string EncodePassword(string pass, int passwordFormat, string salt)
{
if (passwordFormat == 0) // MembershipPasswordFormat.Clear
return pass;
byte[] bIn = Encoding.Unicode.GetBytes(pass);
byte[] bSalt = Convert.FromBase64String(salt);
byte[] bAll = new byte[bSalt.Length + bIn.Length];
byte[] bRet = null;
Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length);
Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length);
if (passwordFormat == 1)
{ // MembershipPasswordFormat.Hashed
HashAlgorithm s = HashAlgorithm.Create( Membership.HashAlgorithmType );
bRet = s.ComputeHash(bAll);
} else
{
bRet = EncryptPassword( bAll );
}
return Convert.ToBase64String(bRet);
}
.NET 4 で使用されているアルゴリズムが HMACSHA256 であることを何時間も探し回った結果、私は今知っています。アルゴリズムが正しく機能するにはキーが必要であることを理解しています。
私の質問は、これをどのように行うのですか?
キーを構成ファイルに入れて、何らかの方法で参照しますか?
どんな助けでも大歓迎です!
ありがとう。