본문 바로가기
Back-end/JAVA & Spring

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

by 꼬바리 2021. 9. 30.

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

"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



온라인에서 이미지를 Base64 로 변환해주는 사이트
https://products.aspose.app/ocr/ko/img-to-base64

728x90
반응형

댓글