📋Keys.hmacShaKeyFor(byte[] keyBytes)

이 코드 조각은 JWT (JSON Web Token)를 사용하여 토큰을 서명할 때 사용되는 서명 키를 생성하는 메서드입니다. JWT를 생성하거나 검증할 때, 서명 알고리즘을 통해 토큰의 무결성과 신뢰성을 보장하기 위해 서명 키가 필요합니다. 이 메서드는 HMAC (Hash-based Message Authentication Code) 서명 알고리즘을 사용하여 서명 키를 생성합니다.

여기서 Keys.hmacShaKeyFor 메서드와 관련된 코드의 동작을 자세히 설명하겠습니다.

코드 설명

private Key getSigningKey() {
    return Keys.hmacShaKeyFor(SECRET_KEY.getBytes());
}

1. SECRET_KEY

2. SECRET_KEY.getBytes()

3. Keys.hmacShaKeyFor(byte[] keyBytes)

JWT 서명에 대한 설명

JWT의 서명 과정은 다음과 같습니다:

  1. 헤더와 페이로드를 생성: JWT는 일반적으로 헤더(header), 페이로드(payload), 서명(signature) 세 부분으로 나뉩니다. 헤더와 페이로드는 JSON 형식으로 구성됩니다.
  2. 헤더와 페이로드를 Base64Url로 인코딩: JWT의 첫 두 부분을 Base64Url로 인코딩하여 토큰의 첫 번째와 두 번째 부분을 생성합니다.
  3. 서명 생성:
  4. 토큰 생성: 서명된 JWT는 헤더, 페이로드, 서명을 포함하여 최종적으로 생성됩니다.

사용 예시

서명 키를 사용하여 JWT를 생성하거나 검증하는 코드 예시는 다음과 같습니다:

JWT 생성