signWith 노란줄 !

강의를 보고 열심히 jwt를 만들고 있었는데 위와 같이 노란줄이 뜬다.

잘 사용하지 않는단다. (deprecated)

왜 ??

 

GPT 한테 물어보니 보안상의 이유로 signWith(SignatureAlgorithm, Key) 요 메서드는 잘 사용 되지 않는 단다.

보니까 그럼 다른 게, Key key 요렇게 Key를 넣으란다.

그래서
private static final Key secretKey = Keys.secretKeyFor(SignatureAlgorithm.HS512);

 

요래 전역변수를 만들어 놓고,

.signWith(secretKey)

요래 바꿔서 사용 한다.

 

Key 란 ? 

 

Key는 Java Cryptography Architecture (JCA)에서 사용되는 인터페이스입니다. 이 인터페이스는 비밀 키, 공개 키 및 시크릿 키와 같은 암호화 및 서명에 사용되는 키를 표현합니다.

Keys.secretKeyFor(SignatureAlgorithm.HS512)는 주어진 알고리즘 (여기서는 HS512)에 따라 무작위 비밀 키를 생성하는 메서드입니다. 이 메서드는 암호화 및 서명 작업에 사용되는 키를 생성합니다. 여기서 HS512는 HMAC-SHA512 알고리즘을 나타냅니다. HMAC은 해시 기반 메시지 인증 코드로, 메시지 무결성을 보호하기 위해 사용됩니다.

따라서 Keys.secretKeyFor(SignatureAlgorithm.HS512)는 HMAC-SHA512 알고리즘에 대한 비밀 키를 생성하고 이를 Key 인터페이스로 반환합니다. 이것은 일반적으로 JWT의 서명 작업에 사용되는 비밀 키입니다.

 

그러니까

 

signWith(SignatureAlgorithm.HS512, key) 와 같은 방식의 메서드는 어찌됐건 key를 숨겨둬야 하는데 (지금 실습에선 yml에 jwt/secretkey 에 base64 를 활용한 비밀키를 넣어뒀다) key가 노출 될 위험이 있으니 더 안전하고 간단한  signWith(Key) 메서드를 사용 하라는 것 같다.

 

 

자동으로 랜덤한 비밀키를 생성해준다고 하니 그게 더 나을 것 같다.

+ Recent posts