私はこのPOCOクラスがあります:私は私のデータベースからデータを読み込み、時に/復号化Password
フィールドを暗号化するために行うことができますどのようにのC#、Dapperの、POCOおよび暗号化/復号化は
class Users
{
public string User { get; set; }
public string Password { get; set; }
private string Encrypt(string plainText)
{
...
return encryptedText;
}
private string Decrypt(string cipherText)
{
...
return decryptedText;
}
を私はから私のPOCOオブジェクトにアクセスするときC#?
は、私はこのようなsometingh使用しようとしたんだ:
class Users
{
private string _password;
public string User { get; set; }
public string Password
{
get
{
return Encriptar(_password);
}
set
{
_password = Desencriptar(value);
}
}
private string Encrypt(string plainText)
{
...
return encryptedText;
}
private string Decrypt(string cipherText)
{
...
return decryptedText;
}
しかし、オブジェクトは、私のデータベースからのデータで満たされているとき、すべてがPassword
フィールドが正しく復号化し、OKですが、私はからオブジェクトにアクセスするときC#をテキストフィールドに表示すると、get
プロパティは再びデータを暗号化します。/
パスワードを復号化する機能を持っている場合は、間違っています。 [必要な読解](http://stackoverflow.com/q/1054022/335858)。 – dasblinkenlight
**パスワードを暗号化しない**、攻撃者がDBを取得したときに暗号化キーも取得する。約100msの間、ランダムな塩でHMACを繰り返し、塩をハッシュで保存します。 'password_hash' /' password_verify'、 'PBKDF2'(別名' Rfc2898DeriveBytes')、 'Bcrypt'などの関数を使用してください。要点は、攻撃者が無差別にパスワードを見つけるのに多くの時間を費やすことです。 – zaph
ヒントをありがとう:) –