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

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

はい、C# でそれを実行する方法はわかっています。

それは次のように簡単です:

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

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

ベストアンサー1

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"

詳細については、ベース64

Java < 8

Base64はJavaバージョン8未満にはバンドルされていません。Apache Commons コーデック

直接バイト配列の場合:

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 を使用)

If you are using the Android SDK before Java 8 then your best option is to use the bundled android.util.Base64.

For direct byte arrays:

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

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

Or if you just want the strings:

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

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

Other: Spring < 6.0.5

If for some reason Java's Base64 isn't suitable and you use Spring, see Base64Utils. This package, however, is deprecated as of 6.0.5 and so I don't recommend.

おすすめ記事