[英]C#, Dapper, POCO and Encrypt/Decrypt
我有這個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;
}
當我從數據庫中讀取數據以及從C#訪問POCO對象時,如何對Password
字段進行加密/解密?
我試圖像這樣使用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
字段正確解密,但是當我從C#訪問對象以在文本字段中顯示時, get
屬性再次加密我的數據:/
這與Dapper無關。 還請考慮其他人對您的問題發表的評論。
以下只是建議如何避免在get
塊中兩次解密。
private string _password;
private bool _isDecrypted = false;
public string Password
{
get
{
if(_isDecrypted == false)
{
_password = Decrypt(_password);
_isDecrypted = true;
}
return (_password);
}
set
{
_password = Encrypt(value);
_isDecrypted = false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.