Back-end/JAVA & Spring

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

꼬바리 2021. 9. 30. 16:52

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

"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
반응형