2010-03-10 29 views

Respuesta

20

Uso

byte[] data = new Base64().decode(base64str); 

que se necesita para hacer referencia commons codec de su proyecto con el fin de que el código para trabajar.

+19

los métodos de codificación/decodificación de la clase base 64 son estáticos por lo que no es necesario crear una nuevo objeto. Entonces: byte [] data = Base64.decode (base64str); es suficiente. –

98

Java 8

codificar o decodificar byte matrices:

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 lo que desea es 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, ver Base64.

Java 7

base 64 no se incluye con Java 7. Recomiendo el uso de 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 lo que desea es 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" 

Android/Java 7

Si está utilizando el SDK de Android con Java 7 a continuación, su mejor opción es usar 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 lo que desea es las cuerdas:

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

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