【问题标题】:Does data encryption belong inside the repository pattern?数据加密是否属于存储库模式?
【发布时间】:2010-10-11 14:42:35
【问题描述】:

我正在使用应用程序级加密来保护敏感数据。在将字段存储到物理数据库之前,我需要对其进行加密,并且在将其显示在用户界面上之前,我需要对其进行解密。

我正在应用程序中应用存储库模式。

数据加解密代码是属于Repository类内部还是外部?

我目前的想法是,当数据处于静止状态时,加密是存储库的一个方面,使用存储库的服务类不应与此加密代码混淆。

服务类负责验证和业务逻辑,但加密算法和静态数据如何存储取决于存储库实现。

这是一种合理的做法还是我遗漏了什么?

【问题讨论】:

    标签: encryption repository-pattern


    【解决方案1】:

    您当然不希望在服务类中加密。

    从某种意义上说,当你说时,你实际上是在回答你自己的问题

    但加密算法和静态数据的存储方式取决于存储库的实现。

    由于加密是数据存储方式的一部分,因此它属于存储库。

    【讨论】:

    • +1 - 这是一个实现细节。让存储库根据需要处理它。
    • 同意。问题只在存储库中。
    【解决方案2】:

    我会把它放在服务层。原因如下:

    从业务规则/领域需求的角度来看,加密数据是一项需求吗?是否应该通过测试进行验证?如果是这样,你应该把它放在你放置所有其他可测试业务逻辑的地方。换句话说,在服务中。

    就我而言,业务逻辑(加密什么,不加密什么)不属于存储库。当要持久化的对象被提供给存储库时,它们应该准备好持久化(或尽可能接近)。否则,存储库负责持久性实现业务规则,然后您就不再真正使用存储库模式了......

    【讨论】:

      猜你喜欢
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 2013-07-31
      相关资源
      最近更新 更多