はい、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.