87

base64 エンコード/デコードに使用するライブラリを知りたいのですが? この機能は、本番環境で使用できるほど安定している必要があります。

4

4 に答える 4

293

Java 9

Java 8 ソリューションを使用します。注 DatatypeConverter は引き続き使用できますが、java.xml.bind含める必要があるモジュール内にあります。

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

Java 8

Java 8 ではjava.util.Base64、base64 のエンコードとデコードが提供されるようになりました。

エンコーディング

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

Java 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
于 2013-01-19T10:19:34.543 に答える
15

Apache Commons内の commons-codec-1.7.jar には、エンコードに使用できるBase64クラスが含まれています。

Maven経由:

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

直接ダウンロード

于 2013-01-19T10:03:28.060 に答える
5

GuavaにはBase64もあります(他のエンコーディングや非常に便利なものの中でも)

于 2013-01-19T10:14:37.600 に答える