簡體   English   中英

C#,Dapper,POCO和加密/解密

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM