まず第一に、クライアントとサーバーの通信では、機密情報 (パスワードなど) がプレーン テキスト形式で転送されないように SSL を使用することをお勧めします。
その後、パスワードをどこにも保存しないのが一般的な方法です (暗号化されていても、パスワードのハッシュ値は.
パスワードプロパティのsetメソッドにハッシュ関数を入れることができます。次に例を示します。
public class Member
{
private string _username;
public string Username
{
get { return _username; }
set { _username = value.ToLowerInvariant(); }
}
public string Passhash {get;set;}
public void SetPassword(string password)
{
Passhash = Crypto.Hash(password);
}
public bool CheckPassword(string password)
{
return string.Equals(Passhash, Crypto.Hash(password));
}
}
public static class Crypto
{
public static string Hash(string value)
{
return Convert.ToBase64String(
System.Security.Cryptography.SHA256.Create()
.ComputeHash(Encoding.UTF8.GetBytes(value)));
}
}
編集:
Craig Stuntz が指摘したように、この例の Hash コードは非常に単純です。パスワードをより安全にハッシュする方法については、次の投稿を参照してください: MD5 または sha-256 C# を使用したパスワードのハッシュ