2009-03-05 6 views
0

중요한 데이터를 보호하기 위해 응용 프로그램 수준 암호화를 사용하고 있습니다. 실제 데이터베이스에 저장하기 전에 필드를 암호화해야하고 사용자 인터페이스에 표시하기 전에 암호를 해독해야합니다.데이터 암호화가 저장소 패턴에 속합니까?

나는 응용 프로그램의 저장소 패턴을 적용하고있다.

는 데이터 암호화/암호 해독 코드는 내부 또는 저장소 클래스 외부에 속해 있습니까?

나의 현재의 생각은 데이터가 정지시, 암호화 저장소이 암호화 코드가 복잡하지 않아야 저장소를 사용하여 서비스 클래스의 측면이라고합니다.

서비스 클래스는 검증 및 비즈니스 로직에 대한 책임이지만, 암호화 알고리즘 어떻게 데이터가 나머지에 저장되어있는 저장소 구현에 달려있다.

이 방법이 적절한가요? 아니면 뭔가 빠졌습니까?

답변

3

확실히 서비스 클래스에서 암호화를 원하지 않습니다. 당신이

말을하지만, 암호화 알고리즘 어떻게 데이터가 나머지에 저장되어있는 저장소 구현에있을 때

은 어떤 의미에서, 당신은 실제로 자신의 질문에 대답합니다.

암호화는 데이터 저장 방법의 일부이므로 저장소 내에 있습니다.

+0

+1 - 구현 세부 사항입니다. 저장소가 필요에 따라 처리하도록하십시오. – duffymo

+0

동의. 우려는 저장소 내에서만 발생합니다. – eduncan911

1

나는 그것을 서비스 계층에 넣을 것이다.

데이터 요구 사항을 암호화하고, 비즈니스 규칙/도메인 요구 사항 관점에서 보면 : 그 이유는? 테스트로 검증해야합니까? 그렇다면 테스트 할 수있는 다른 모든 비즈니스 로직을 배치 한 동일한 장소에 배치해야합니다. 즉, 서비스에서.

는 지금까지 내가 걱정으로, 비즈니스 로직 (암호화 무엇을, 어떤 암호화되지 않음) 저장소에 속하지 않습니다. 영속화 될 객체는 영속성을 위해 (또는 가능하면 가깝게) 저장소에 주어질 때 준비되어야한다. 그렇지 않으면 리포지토리가 비즈니스 규칙을 구현하는 지속성 을 담당하고 더 이상 리포지토리 패턴을 더 이상 사용하지 않습니다 ...