Mac — 메시지 인증 코드
Mac — 메시지 인증 코드
Mac 클래스는 메시지 인증 코드(MAC) 알고리즘의 기능을 제공해요. MAC은 비밀 키를 기반으로 불안정한 매체를 통해 전송되거나 저장된 정보의 무결성을 확인하는 방법을 제공해요.
본문
일반적으로 메시지 인증 코드는 비밀 키를 공유하는 두 당사자 사이에서 이들 사이에 전송되는 정보를 검증하는 데 사용돼요.
암호 해시 함수에 기반한 MAC 메커니즘은 HMAC이라고 불러요. HMAC은 SHA256이나 SHA384 같은 암호 해시 함수와 비밀 공유 키를 결합해 사용할 수 있고, RFC 2104에 정의돼 있어요.
Java 플랫폼의 모든 구현은 HmacSHA1과 HmacSHA256 표준 Mac 알고리즘을 지원해야 해요. 추가 알고리즘 지원 여부는 릴리스 문서에서 확인할 수 있어요.
주요 메서드를 정리하면 다음과 같아요.
Mac getInstance(String algorithm)— 지정된 알고리즘의 MAC 객체를 반환해요.void init(Key key)— 비밀 키로 MAC을 초기화해요.InvalidKeyException,InvalidAlgorithmParameterException이 발생할 수 있어요.void update(byte input)— 주어진 바이트를 처리해요.IllegalStateException이 발생할 수 있어요.byte[] doFinal()— MAC 연산을 마치고 그 결과를 반환해요.IllegalStateException,ShortBufferException이 발생할 수 있어요.byte[] doFinal(byte[] input)— 주어진 입력을 처리하고 MAC 연산을 마쳐요.int getMacLength()— MAC의 길이(바이트)를 반환해요.void reset()— 이 MAC을 재설정해요.Object clone()— 구현이 복제 가능하면 복제본을 반환해요.CloneNotSupportedException이 발생할 수 있어요.
HMAC 기반 무결성 검증이 필요한 곳에서 널리 사용돼요.