gpt4 book ai didi

c# - 模型中双向加密属性的 getter/setter

转载 作者:行者123 更新时间:2023-12-02 03:51:29 27 4
gpt4 key购买 nike

我需要对数据库中的某些字段进行加密,因此,我需要对进入数据库的数据进行加密,然后在显示时对其进行解密。我已经设置了加密方法和解密方法,并且在操作中像这样工作:

model.EncryptedProperty = Encrypt(viewModel.Property);
viewModel.Property = Decrypt(EncryptedProperty);

这很好,但我的问题是其他开发人员在使用属性时需要记住加密/解密该属性。对于该项目的新人来说,这可能是一个问题,因为它要求他们事先知道该属性已加密。我试图通过对模型进行加密/解密来改进加密,如下所示:

private string _property;
public string Property
{
get { return DecryptString(_property); }
set { _property = EncryptString(value); }
}

但是,这似乎不起作用,当我在 View 中查看此属性时,看起来好像它已经加密了数据库中的加密数据(我已经使用 DecryptString(DecriptString( _property)) 返回真实值。

这里的解决方案是什么?有没有更优雅的方法来解决这个问题?

最佳答案

在这种情况下,我可能会这样做:

[WhateverYourDataLayerNeeds("Property")]
public string EncryptedProperty {get;set;}

public string DecryptedProperty
{
get { return DecryptString(EncryptedProperty); }
set { EncryptedProperty = EncryptString(value); }
}

然后数据库层与第一层对话,并且不会出现困惑。

关于c# - 模型中双向加密属性的 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24452847/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com