developer tip

base64 인코딩 / 디코딩을 제공하는 Java 라이브러리는 무엇입니까?

optionbox 2020. 10. 25. 12:07
반응형

base64 인코딩 / 디코딩을 제공하는 Java 라이브러리는 무엇입니까?


이 질문에 이미 답변이 있습니다.

base64 인코딩 / 디코딩에 어떤 라이브러리를 사용할지 궁금합니다. 이 기능은 프로덕션 용도로 충분히 안정적이어야합니다.


자바 9

Java 8 솔루션을 사용하십시오. 참고 DatatypeConverter는 계속 사용할 수 있지만 이제 java.xml.bind포함해야하는 모듈 내에 있습니다.

module org.example.foo {
    requires java.xml.bind;
}

자바 8

Java 8은 이제 java.util.Base64base64 인코딩 및 디코딩을 제공합니다 .

부호화

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

디코딩

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

자바 6 및 7

Java 6부터 덜 알려진 클래스를 javax.xml.bind.DatatypeConverter사용할 수 있습니다. 이것은 JRE의 일부이며 추가 라이브러리가 필요하지 않습니다.

부호화

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

디코딩

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

Android 개발자라면 android.util.Base64이 목적으로 수업을 사용할 수 있습니다 .


Apache Commons에서 commons-codec-1.7.jar에는 인코딩에 사용할 수 있는 Base64 클래스가 포함되어 있습니다 .

Maven을 통해 :

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>20041127.091804</version>
</dependency>

직접 다운로드


Guava 에는 Base64도 있습니다 (다른 인코딩과 매우 유용한 기능 중)

참고 URL : https://stackoverflow.com/questions/14413169/which-java-library-provides-base64-encoding-decoding

반응형