본문 바로가기
Programming/Java

[Java] base64 인코딩 디코딩 (encoding / decoding)

by 배고프당 2019. 4. 3.
728x90

일단 인코딩, 디코딩을 쉽게 설명을 하면

 

"hello world" 라는 단어를 인코딩을 하면 base64형태로 인코딩 됩니다.

 

base64를 디코딩하면 "hello world"라고 나오게 되는 것이죠

 

자바 버전별로 사용되는게 너무많아서 찾다보니 stackoverflow에 잘 정리된 글이 있어서 참조했습니다.

 


1. Java 6 and Java 7

 

java6부터는 javax.xml.bind.DatatypeConverter를 사용할 수 있습니다.

이건 jre의 일부이면 별도의 라이브러리가 필요하지 않습니다.

 

encoding

사용예제)

byte[] message = "hello world".getBytes("UTF-8");
String encoded = DatatypeConverter.printBase64Binary(message);
System.out.println(encoded);

결과)

// => aGVsbG8gd29ybGQ=

decoding

사용예제)

byte[] decoded = DatatypeConverter.parseBase64Binary("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, "UTF-8"));

결과)

// => hello world

2. Java 8

 

java8은 java.util.Base64 인코딩 및 디코딩을 제공합니다

encoding

사용예제)

byte[] message = "hello world".getBytes(StandardCharsets.UTF_8);
String encoded = Base64.getEncoder().encodeToString(message);
System.out.println(encoded);

결과)

// => aGVsbG8gd29ybGQ=

decoding

사용예제)

byte[] decoded = Base64.getDecoder().decode("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, StandardCharsets.UTF_8));

결과)

// => hello world

 

728x90

댓글