Oke, saya tahu bagaimana melakukannya di C #.
Ini sesederhana:
Convert.ToBase64String(byte[])
and Convert.FromBase64String(string) to get byte[] back.
Bagaimana saya bisa melakukan ini di Java?
Encode atau decode array byte:
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"
Atau jika Anda hanya menginginkan senar:
String encoded = Base64.getEncoder().encodeToString("Hello".getBytes());
println(encoded); // Outputs "SGVsbG8="
String decoded = new String(Base64.getDecoder().decode(encoded.getBytes()));
println(decoded) // Outputs "Hello"
Untuk info lebih lanjut, lihat Base64 .
Base64 tidak dibundel dengan versi Java kurang dari 8. Saya merekomendasikan menggunakan Apache Commons Codec .
Untuk array byte langsung:
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"
Atau jika Anda hanya menginginkan senar:
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"
Jika Anda sudah mengerjakan proyek Musim Semi, Anda mungkin merasa org.springframework.util.Base64Utils
kelas mereka lebih ergonomis:
Untuk array byte langsung:
byte[] encoded = Base64Utils.encode("Hello".getBytes());
println(new String(encoded)) // Outputs "SGVsbG8="
byte[] decoded = Base64Utils.decode(encoded);
println(new String(decoded)) // Outputs "Hello"
Atau jika Anda hanya menginginkan senar:
String encoded = Base64Utils.encodeToString("Hello".getBytes());
println(encoded); // Outputs "SGVsbG8="
String decoded = Base64Utils.decodeFromString(encoded);
println(new String(decoded)) // Outputs "Hello"
Jika Anda menggunakan Android SDK sebelum Java 8 maka pilihan terbaik Anda adalah menggunakan paket android.util.Base64
.
Untuk array byte langsung:
byte[] encoded = Base64.encode("Hello".getBytes());
println(new String(encoded)) // Outputs "SGVsbG8="
byte [] decoded = Base64.decode(encoded);
println(new String(decoded)) // Outputs "Hello"
Atau jika Anda hanya menginginkan senar:
String encoded = Base64.encodeToString("Hello".getBytes());
println(encoded); // Outputs "SGVsbG8="
String decoded = new String(Base64.decode(encoded));
println(decoded) // Outputs "Hello"
Menggunakan:
byte[] data = Base64.encode(base64str);
Pengkodean diubah menjadi Base64
Anda perlu merujuk codec commons dari proyek Anda agar kode itu berfungsi.
Untuk java8 :
import java.util.Base64
Selain itu, untuk teman Android kita (API Level 8):
sumber
Jika Anda kebetulan menggunakan framework Spring bersama dengan java, ada cara mudah untuk melakukannya.
Impor yang berikut ini.
Ubah seperti ini.
Untuk memecahkan kode Anda dapat menggunakan metode decodeToString dari kelas Base64Utils.
sumber