我有一些敏感数据,我想在数据库中进行加密,并在代码中动态解密。因为它是一个现有的应用程序,所以我希望加密/解密过程在管道中运行得尽可能低,所以我不需要修改我的服务级别。我的第一个解决方案是修改选定属性的getter和setter,以便通过我的加密助手运行这些属性。然后我想把它封装在一个属性中会很好。找到能够做到这一点的Post扩展,但似乎对这个场景来说是一个过分的选择。还有其他的选择来实现我想做的事情吗?
发布于 2016-01-25 16:31:27
根据使用EF的方式,您可以在EF DbContext之上构建一个包装器,这是一个通用存储库,可以在其中注入一些钩子(拦截器)。
其中一个拦截器类似于ICryptographyInterceptor,它将根据实体类型处理加密逻辑(在插入时)或解密逻辑(在检索上),它不会污染您的业务逻辑或模型,因为这些拦截器将处理此任务。
可以找到现有的实现这里。
如果该项目太复杂,无法进行此类更改,那么用于转换实体的ICryptographyService可能是一个更好的解决方案。
https://stackoverflow.com/questions/34997016
复制相似问题