Cipher — 암호화·복호화를 위한 암호 엔진 클래스
Cipher — 암호화·복호화를 위한 암호 엔진 클래스
암호화(encryption)와 복호화(decryption) 를 위한 암호 기능을 제공하는 클래스예요. Java Cryptography Extension(JCE) 프레임워크의 핵심 엔진 클래스예요.
본문
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