Bien, sé cómo hacerlo en C #.
Es tan simple como:
Convert.ToBase64String(byte[])
and Convert.FromBase64String(string) to get byte[] back.
¿Cómo puedo hacer esto en Java?
Codificar o decodificar matrices de bytes:
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"
O si solo quieres las cuerdas:
String encoded = Base64.getEncoder().encodeToString("Hello".getBytes());
println(encoded); // Outputs "SGVsbG8="
String decoded = new String(Base64.getDecoder().decode(encoded.getBytes()));
println(decoded) // Outputs "Hello"
Para obtener más información, consulte Base64 .
Base64 no se incluye con las versiones de Java inferiores a 8. Recomiendo usar Apache Commons Codec .
Para matrices de bytes directos:
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"
O si solo quieres las cuerdas:
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"
Si ya está trabajando en un proyecto de Spring, puede encontrar sus org.springframework.util.Base64Utils
clase más ergonómica:
Para matrices de bytes directos:
byte[] encoded = Base64Utils.encode("Hello".getBytes());
println(new String(encoded)) // Outputs "SGVsbG8="
byte[] decoded = Base64Utils.decode(encoded);
println(new String(decoded)) // Outputs "Hello"
O si solo quieres las cuerdas:
String encoded = Base64Utils.encodeToString("Hello".getBytes());
println(encoded); // Outputs "SGVsbG8="
String decoded = Base64Utils.decodeFromString(encoded);
println(new String(decoded)) // Outputs "Hello"
Si está utilizando el SDK de Android antes de Java 8, su mejor opción es utilizar el paquete android.util.Base64
.
Para matrices de bytes directos:
byte[] encoded = Base64.encode("Hello".getBytes());
println(new String(encoded)) // Outputs "SGVsbG8="
byte [] decoded = Base64.decode(encoded);
println(new String(decoded)) // Outputs "Hello"
O si solo quieres las cuerdas:
String encoded = Base64.encodeToString("Hello".getBytes());
println(encoded); // Outputs "SGVsbG8="
String decoded = new String(Base64.decode(encoded));
println(decoded) // Outputs "Hello"
Utilizar:
byte[] data = Base64.encode(base64str);
La codificación se convierte a Base64
Debería hacer referencia al códec commons de su proyecto para que ese código funcione.
Para java8 :
import java.util.Base64
Además, para nuestros amigos de Android (API nivel 8):
fuente
En caso de que esté usando Spring Framework junto con Java, hay una manera fácil de hacerlo.
Importe lo siguiente.
Convierta así.
Para decodificar, puede utilizar el método decodeToString de la clase Base64Utils.
fuente