SealedObject — 봉인된 객체

SealedObject — 봉인된 객체

SealedObject 클래스는 프로그래머가 객체를 만들고 암호화 알고리즘으로 그 기밀성을 보호할 수 있게 해줘요.

출처: Java API Reference

본문

어떤 Serializable 객체가 주어지면, 원본 객체를 직렬화 형식(깊은 복사본)으로 캡슐화하고 AES 같은 암호화 알고리즘으로 그 직렬화된 내용을 봉인(암호화)하는 SealedObject를 만들 수 있어요. 암호화된 내용은 나중에 해당 알고리즘과 올바른 복호화 키로 복호화하고 역직렬화해 원본 객체를 얻을 수 있어요.

SealedObject에 적용하기 전에 Cipher 객체가 올바른 알고리즘, 키, 패딩 방식 등으로 완전히 초기화되어야 해요.

봉인된 원본 객체는 두 가지 방법으로 복구할 수 있어요.

  • Cipher 객체를 받는 getObject 메서드 — 이 메서드는 봉인 시 사용한 것과 정확히 같은 알고리즘·키·패딩으로 초기화된 Cipher 객체를 필요로 해요. 이 방식은 언봉(봉인 해제)하는 쪽이 복호화 키를 알 필요가 없다는 장점이 있어요.
  • Key 객체를 받는 getObject 메서드 — 이 방식에서는 봉인 해제 쪽이 직접 키를 가져야 해요.

또한 getAlgorithm() 메서드로 봉인에 사용된 알고리즘 이름을, getEncoded() 메서드로 직렬화·암호화된 내용을 얻을 수 있어요. 객체의 기밀성을 보호하면서 안전하게 저장·전송할 수 있는 강력한 도구예요.

더 알아보기 (Learn more)