online ejemplo java base64 decode encode

ejemplo - Base64 Java codifica y decodifica una cadena



decode base64 java online (6)

Java 8 ahora es compatible con codificación y decodificación BASE64. Puede usar las siguientes clases: java.util.Base64 , java.util.Base64.Encoder y java.util.Base64.Decoder .

Ejemplo de uso:

// encode with padding String encoded = Base64.getEncoder().encodeToString(someByteArray); // encode without padding String encoded = Base64.getEncoder().withoutPadding().encodeToString(someByteArray); // decode a String byte [] barr = Base64.getDecoder().decode(encoded);

Esta pregunta ya tiene una respuesta aquí:

Quiero codificar una cadena en base64 y transferirla a través de un socket y decodificarla de nuevo. Pero después de decodificar da una respuesta diferente. A continuación está mi código y el resultado es "77 + 9x6s ="

import javax.xml.bind.DatatypeConverter; public class f{ public static void main(String a[]){ String str = new String(DatatypeConverter.parseBase64Binary("user:123")); String res = DatatypeConverter.printBase64Binary(str.getBytes()); System.out.println(res); } }

¿Alguna idea sobre cómo implementar esto?

Gracias...


La respuesta aceptada usa el paquete Apache Commons, pero así es como lo hice usando javax.xml.bind.DatatypeConverter ; esto funciona al menos desde Java 6 en:

import java.io.UnsupportedEncodingException; import javax.xml.bind.DatatypeConverter; public class EncodeString64 { public static void main(String[] args) throws UnsupportedEncodingException { String str = "77+9x6s="; // encode data using BASE64 String encoded = DatatypeConverter.printBase64Binary(str.getBytes()); System.out.println("encoded value is /t" + encoded); // Decode data String decoded = new String(DatatypeConverter.parseBase64Binary(encoded)); System.out.println("decoded value is /t" + decoded); System.out.println("original value is /t" + str); } }

La mejor manera sería intentar / capturar los pasos de codificación / descodificación, pero ojalá tenga la idea.


La siguiente es una buena solución:

import android.util.Base64; String converted = Base64.encodeToString(toConvert.toString().getBytes(), Base64.DEFAULT); String stringFromBase = new String(Base64.decode(converted, Base64.DEFAULT));

Eso es. Una sola línea de codificación y decodificación.


Para los usuarios de Spring, Spring Security tiene una clase Base64 en el paquete org.springframework.security.crypto.codec que también se puede usar para codificar y decodificar Base64. Ex.

public static String base64Encode(String token) { byte[] encodedBytes = Base64.encode(token.getBytes()); return new String(encodedBytes, Charset.forName("UTF-8")); } public static String base64Decode(String token) { byte[] decodedBytes = Base64.decode(token.getBytes()); return new String(decodedBytes, Charset.forName("UTF-8")); }


Puede usar el siguiente enfoque:

// Encode data on your side using BASE64 byte[] bytesEncoded = Base64.encodeBase64(str.getBytes()); System.out.println("encoded value is " + new String(bytesEncoded)); // Decode data on other side, by processing encoded data byte[] valueDecoded = Base64.decodeBase64(bytesEncoded); System.out.println("Decoded value is " + new String(valueDecoded));

Espero que esto responda a tu duda.


import javax.xml.bind.DatatypeConverter; public class f{ public static void main(String a[]){ String str = new String(DatatypeConverter.printBase64Binary(new String("user:123").getBytes())); String res = DatatypeConverter.parseBase64Binary(str); System.out.println(res); } }