【发布时间】:2014-06-27 13:18:01
【问题描述】:
我需要对数据库中的某些字段进行加密,所以,我需要对进入数据库的数据进行加密,然后在显示时解密。我已经设置了我的加密方法和解密方法,并且我让它像这样在一个动作中工作:
model.EncryptedProperty = Encrypt(viewModel.Property);
viewModel.Property = Decrypt(EncryptedProperty);
这很好,但我的问题是其他开发人员在使用该属性时需要记住加密/解密该属性。这对于项目的新人来说可能是个问题,因为它要求他们事先知道该属性被加密。我试图通过像这样在模型上加密/解密来改进加密:
private string _property;
public string Property
{
get { return DecryptString(_property); }
set { _property = EncryptString(value); }
}
但是,这似乎不起作用,当我在视图中查看此属性时,它看起来好像已经加密了数据库中的加密数据(我已经使用 DecryptString(DecriptString(_property)) 对此进行了测试,它返回 true价值。
这里的解决方案是什么?有没有更优雅的方法来解决这个问题?
【问题讨论】:
标签: c# encryption cryptography