JAVA

java.util.Base64 사용 시 jdk 1.7 버전으로 인한 오류

스노위13 2023. 1. 4. 15:18

API 사용을 위해 Token을 그때그때 발급해야 해서
인코딩을 위해 java.util.Base64를 사용하였다.
local에서는 JDK 1.8을 사용해서 전혀 문제가 없었는데
문제가 생겼다... 실제 올려야하는 시스템은 JDK 1.7이었던 것!

이 부분을 먼저 염두에 두고 작업을 했어야 했는데 
학원에서는 딱 정해진 것만 사용해서 버전 이슈가 없었기에
이번 기회에 확실하게 배우게 되었다....ㅠㅠ

공식 문서에도 Since : 1.8이라고 떡하니 적혀있다...ㅠㅠ
그렇다면 방법이 전혀 없는 것일까?

아니 그럴리는 없지 나믿구믿! 구글 검색을 해봤다
그리고 정말로 딱 필요했던 글을 찾아 수정할 수 있었다
org.apache.commons.codec.binary.Base64를 사용하는 것
 (맨 아래 링크를 참고해주세요)

그리고 바로 수정을 했다. 예시를 들자면 아래와 같다.
(실제 사용한 코드는 아니고 예시로 만듦)

import java.util.Base64;
→ import org.apache.commons.codec.binary.Base64;

String strKey = "API에서 넘어온 키";
byte[] byteKey = strKey.getBytes("UTF-8");

Base64.Encoder encoder = Base64.getEncoder();
→ 삭제
byte[] encodedKey = encoder.encode(byteKey);
→ byte[] encodedKey = Base64.encodeBase64(byteKey);

String authKey= new String(encodedKey);

많이 수정한 것도 아닌데 실행이 잘 되서 해삐!

더 자세한 내용은 아래 링크를 참고해주시길~

 

 

[TIL] Java7 에서는 java.util.Base64 가 동작하지 않는다

테스트 서버는 java 1.8 인데 운영서버는 java 1.7 인 환경에서 운영서버에 올렸더니 먹통이 되는 Base64 encode/decode...검색해보니, java 1.7 에서는 java.util.Base64 encode/decode 가 안된단다... 헐.

velog.io