Cipher — 암호화·복호화를 위한 암호 엔진 클래스

Cipher — 암호화·복호화를 위한 암호 엔진 클래스

암호화(encryption)와 복호화(decryption) 를 위한 암호 기능을 제공하는 클래스예요. Java Cryptography Extension(JCE) 프레임워크의 핵심 엔진 클래스예요.

출처: Java API Reference

본문

public class Cipher extends Object

Cipher변환(transformation) 을 명시해 getInstance 팩토리 메서드로 얻어요. 변환은 "algorithm/mode/padding" 또는 "algorithm" 형태예요. 예를 들어 AES/CBC/PKCS5Padding 같은 변환을 지정할 수 있어요.

Cipher 객체는 다시 사용할 수 있어요. 초기화 후 여러 데이터 블록을 처리할 수 있고, doFinal 후 다시 초기화할 수 있어요.

주요 정적 메서드

  • getInstance(String transformation) — 지정된 변환을 구현하는 Cipher 객체를 반환해요.
  • getInstance(String transformation, String provider) — 지정된 프로바이더의 변환을 구현하는 Cipher 객체를 반환해요.
  • getMaxAllowedKeyLength(String transformation) — 지정된 변환의 최대 키 길이(비트)를 반환해요.

주요 인스턴스 메서드

  • init(int opmode, Key key) — 이 Cipher를 암호화(ENCRYPT_MODE) 또는 복호화(DECRYPT_MODE)로 초기화해요.
  • init(int opmode, Key key, AlgorithmParameterSpec params) — 파라미터와 함께 초기화해요.
  • update(byte[] input) — 여러 부분으로 나뉜 연산을 계속 처리해요.
  • doFinal(byte[] input) — 여러 부분으로 나뉜 연산을 마무리해요.
  • getBlockSize() — 블록 크기(바이트)를 반환해요.
  • getIV() — 초기화 벡터(IV)를 반환해요.
  • getAlgorithm() — 이 Cipher의 알고리즘 이름을 반환해요.
  • wrap(Key key) / unwrap(...) — 키를 래핑하거나 언래핑해요.

Cipher는 AEAD(GCM/CCM) 모드를 지원하며, AEAD 모드에서 태그 검증에 실패하면 AEADBadTagException이 던져져요.

  • 도입 시점(Since): 1.4

더 알아보기 (Learn more)