web-dev-qa-db-ja.com

Javaでバイト配列をBase64に変換するにはどうすればよいですか?

さて、C#でそれを行う方法を知っています。

次のように簡単です:

Convert.ToBase64String(byte[])
and Convert.FromBase64String(string) to get byte[] back.

Javaでこれを行うにはどうすればよいですか?

90
Sorantis

Java 8+

バイト配列のエンコードまたはデコード:

byte[] encoded = Base64.getEncoder().encode("Hello".getBytes());
println(new String(encoded));   // Outputs "SGVsbG8="

byte[] decoded = Base64.getDecoder().decode(encoded);
println(new String(decoded))    // Outputs "Hello"

または、単に文字列が必要な場合:

String encoded = Base64.getEncoder().encodeToString("Hello".getBytes());
println(encoded);   // Outputs "SGVsbG8="

String decoded = new String(Base64.getDecoder().decode(encoded.getBytes()));
println(decoded)    // Outputs "Hello"

詳細については、 Base64 を参照してください。

Java <8

Base64はJavaバージョン8未満にはバンドルされていません。 Apache Commons Codec を使用することをお勧めします。

直接バイト配列の場合:

Base64 codec = new Base64();
byte[] encoded = codec.encode("Hello".getBytes());
println(new String(encoded));   // Outputs "SGVsbG8="

byte[] decoded = codec.decode(encoded);
println(new String(decoded))    // Outputs "Hello"

または、単に文字列が必要な場合:

Base64 codec = new Base64();
String encoded = codec.encodeBase64String("Hello".getBytes());
println(encoded);   // Outputs "SGVsbG8="

String decoded = new String(codec.decodeBase64(encoded));
println(decoded)    // Outputs "Hello"

Android(Java <8)

Android 8より前にJava SDKを使用している場合、最良のオプションは、バンドルされたAndroid.util.Base64を使用することです。

直接バイト配列の場合:

byte[] encoded = Base64.encode("Hello".getBytes());
println(new String(encoded))    // Outputs "SGVsbG8="

byte [] decoded = Base64.decode(encoded);
println(new String(decoded))    // Outputs "Hello"

または、単に文字列が必要な場合:

String encoded = Base64.encodeToString("Hello".getBytes());
println(encoded);   // Outputs "SGVsbG8="

String decoded = new String(Base64.decode(encoded));
println(decoded)    // Outputs "Hello"
173
Cory Klein

つかいます:

byte[] data = Base64.encode(base64str);

エンコードはBase64に変換されます

そのコードが機能するためには、プロジェクトから commons codec を参照する必要があります。

Java8の場合

import Java.util.Base64
26

さらに、Android友人(APIレベル8)の場合:

import Android.util.Base64

...

Base64.encodeToString(bytes, Base64.DEFAULT);
10
Ton Snoei

JavaとともにSpringフレームワークを使用している場合、簡単な方法があります。

  1. 以下をインポートします。

    import org.springframework.util.Base64Utils;
  2. このように変換します。

     byte [] bytearr = {0,1,2,3,4}; 
     String encodedText = Base64Utils.encodeToString(bytearr); 
    

    デコードするには、Base64UtilsクラスのdecodeToStringメソッドを使用できます。

4
Ihsan Izwer