パスワードのソルト化とハッシュ化を行う方法を知りたいですか? インターネットでそれに関する多くの例を見つけましたが、まだうまくできません。
ソルトとハッシュを生成するこのコードがあります
public static byte[] GetSalt()
{
var p = new RNGCryptoServiceProvider();
var salt = new byte[16];
p.GetBytes(salt);
return salt;
}
public static byte [] GetSecureHash(string password, byte[] salt)
{
Rfc2898DeriveBytes PBKDF2 = new Rfc2898DeriveBytes(password, salt);
return PBKDF2.GetBytes(64);
}
しかし、私はこれらのメソッドをどこで使用するのかわかりません。私はこれを持っています:
SqlParameter SalContraseña = new SqlParameter("@SalContraseña", SqlDbType.Binary, 16);
SalContraseña.Value = GetSalt();
cmd.Parameters.Add(SalContraseña);
SqlParameter HashContraseña = new SqlParameter("@HashContraseña",SqlDbType.Binary, 64);
HashContraseña.Value = GetSecureHash(Password,byte[]);
cmd.Parameters.Add(HashContraseña);
ここで、パスワードとハッシュを に適用しますSqlParameter
が、それが正しいかどうか、またはこれがこれを行うための正しい形式であるかどうかはわかりません。
これらのコードをユーザーを作成するフォームに適用しましたが、このコードを適用してハッシュでパスワードを検証する方法がわかりません。ユーザーがログインしているフォームでこれを行う必要があることはわかっています。