util transformar imagen getencoder getbytes example convertir codificar codificacion archivo java android base64

java - transformar - Base 64 codifica y decodifica código de ejemplo



java util base64 example (7)

¿Alguien sabe cómo decodificar y codificar una cadena en Base64 usando Base64? Estoy usando el siguiente código, pero no está funcionando.

String source = "password"; byte[] byteArray = source.getBytes("UTF-16"); Base64 bs = new Base64(); //bs.encodeBytes(byteArray); System.out.println( bs.encodeBytes(byteArray)); //bs.decode(bs.encodeBytes(byteArray)); System.out.println(bs.decode(bs.encodeBytes(byteArray)));


Basado en las respuestas anteriores, estoy usando los siguientes métodos de utilidad en caso de que alguien quiera usarlo.

/** * @param message the message to be encoded * * @return the enooded from of the message */ public static String toBase64(String message) { byte[] data; try { data = message.getBytes("UTF-8"); String base64Sms = Base64.encodeToString(data, Base64.DEFAULT); return base64Sms; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; } /** * @param message the encoded message * * @return the decoded message */ public static String fromBase64(String message) { byte[] data = Base64.decode(message, Base64.DEFAULT); try { return new String(data, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; }


Para Kotlin mb es mejor usar esto:

fun String.decode(): String { return Base64.decode(this, Base64.DEFAULT).toString(charset("UTF-8")) } fun String.encode(): String { return Base64.encodeToString(this.toByteArray(charset("UTF-8")), Base64.DEFAULT) }

Ejemplo:

Log.d("LOGIN", "TEST") Log.d("LOGIN", "TEST".encode()) Log.d("LOGIN", "TEST".encode().decode())


Para cualquier otra persona que terminó aquí mientras buscaba información sobre cómo decodificar una cadena codificada con Base64.encodeBytes() , aquí estaba mi solución:

// encode String ps = "techPass"; String tmp = Base64.encodeBytes(ps.getBytes()); // decode String ps2 = "dGVjaFBhC3M="; byte[] tmp2 = Base64.decode(ps2); String val2 = new String(tmp2, "UTF-8");

Además, estoy apoyando versiones anteriores de Android, así que estoy usando la biblioteca Base64 de Robert Harder desde http://iharder.net/base64


Para encriptar:

byte[] encrpt= text.getBytes("UTF-8"); String base64 = Base64.encodeToString(encrpt, Base64.DEFAULT);

Para descifrar:

byte[] decrypt= Base64.decode(base64, Base64.DEFAULT); String text = new String(decrypt, "UTF-8");


Primero:

  • Elige una codificación UTF-8 es generalmente una buena opción; apegarse a una codificación que definitivamente será válida en ambos lados. Sería raro usar algo que no sea UTF-8 o UTF-16.

Fin transmisor:

  • Codifique la cadena en bytes (por ejemplo, text.getBytes(encodingName) )
  • Codifique los bytes a base64 utilizando la clase Base64
  • Transmita la base64

Extremo de recepción:

  • Recibe la base64
  • Decodifica la base64 en bytes utilizando la clase Base64
  • Decodificar los bytes a una cadena (por ejemplo, new String(bytes, encodingName) )

Entonces algo así como:

// Sending side byte[] data = text.getBytes("UTF-8"); String base64 = Base64.encodeToString(data, Base64.DEFAULT); // Receiving side byte[] data = Base64.decode(base64, Base64.DEFAULT); String text = new String(data, "UTF-8");

O con StandardCharsets :

// Sending side byte[] data = text.getBytes(StandardCharsets.UTF_8); String base64 = Base64.encodeToString(data, Base64.DEFAULT); // Receiving side byte[] data = Base64.decode(base64, Base64.DEFAULT); String text = new String(data, StandardCharsets.UTF_8);


Si está usando Kotlin que usar de esta manera

Para codificar

val password = "Here Your String" val data = password.toByteArray(charset("UTF-8")) val base64 = Base64.encodeToString(data, Base64.DEFAULT)

Para decodificar

val datasd = Base64.decode(base64, Base64.DEFAULT) val text = String(datasd, charset("UTF-8"))


algo como

String source = "password"; byte[] byteArray; try { byteArray = source.getBytes("UTF-16"); System.out.println(new String(Base64.decode(Base64.encode(byteArray, Base64.DEFAULT), Base64.DEFAULT))); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); }