본문 바로가기
JAVA

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

by 스노위13 2023. 1. 4.

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

댓글