티스토리 뷰

Base64란?

컴퓨터 분야에서 쓰이는 Base 64 (베이스 육십사)란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다.

- 참조 : 위키백과

 

JAVA 8부터는 표준 API로 Base64 기능을 제공한다. java.util.Base64 유틸리티를 통해 사용할 수 있다. 

public class Base64EncodingTest {

    public static void main(String[] args) {

        String flatText = "oing is pretty";
        String urlSample = "http://www.naver.com";
        
        //===== encoding =====
        String encodedText = Base64.getEncoder().encodeToString(flatText.getBytes());
        //encodedText = b2luZyBpcyBwcmV0dHk=
        
        //===== decoding =====
        String decodedText = new String(Base64.getDecoder().decode(encodedText));
        //decodedText = oing is pretty
        
        //===== without padding encoding =====
        String withoutPadding = Base64.getEncoder().withoutPadding().encodeToString(flatText.getBytes());
       
        //===== url encoding =====
        String encodedUrl = Base64.getUrlEncoder().encodeToString(urlSample.getBytes());
    }
}

위와 같이 Base64.getEncoder(), Base64.getDecoder() 라는 메소드를 통해 쉽게 변환작업을 할 수 있다. 

기본적으로 String 변수를 많이 encoding, decoding을 할텐데 주의해야 할점은 String <-> byte[] 간의 변환에 대해 신경써주면 된다. encoding 할때는 byte[] 를 param으로 넣어주고 decoding 할때는 decode 결과를 String으로 변환을 해주는 정도만 신경쓰면 아주 쉽게 이용할 수 있다.

url encoding과 같은 부분은 Base64.getUrlEncoder()와 같은 별도의 메소드를 제공하니 이것을 이용하도록 하자. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31