¿Alguien sabe cómo decodificar y codificar una cadena en Base64 utilizando Base64. Estoy usando el siguiente código, pero no funciona.
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)));
import android.util.Base64;
y luego puede usarBase64.encodeToString
yBase64.decode
según sus necesidadesRespuestas:
Primero:
Final de transmisión:
text.getBytes(encodingName)
)Base64
claseExtremo de recepción:
Base64
clasenew String(bytes, encodingName)
)Entonces algo como:
O con
StandardCharsets
:fuente
UTF-8
se garantiza que es una codificación válida en Java: consulte docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html . Es cierto que en estos días especificaría en suStandardCharsets.UTF_8
lugar. He actualizado la respuesta para especificar que debe tener confianza en la presencia del juego de caracteres, pero casi siempre usaría UTF-8.Para cualquier otra persona que terminó aquí mientras buscaba información sobre cómo decodificar una cadena codificada
Base64.encodeBytes()
, aquí estaba mi solución:Además, estoy admitiendo versiones anteriores de Android, así que estoy usando la biblioteca Base64 de Robert Harder de http://iharder.net/base64
fuente
Para Kotlin mb mejor usar esto:
Ejemplo:
fuente
Si está usando Kotlin, use así
Para codificar
Para decodificar
fuente
algo como
fuente
Para encriptar:
Para descifrar:
fuente
En base a las respuestas anteriores, estoy usando los siguientes métodos de utilidad en caso de que alguien quiera usarlo.
fuente
Para API nivel 26+
Ref: https://developer.android.com/reference/java/util/Base64.Encoder.html#encodeToString (byte [])
fuente
La clase 'java.util.Base64' proporciona funcionalidad para codificar y decodificar la información en formato Base64.
¿Cómo obtener el codificador Base64?
¿Cómo obtener el decodificador Base64?
¿Cómo codificar los datos?
¿Cómo decodificar los datos?
Puede obtener más detalles en este enlace .
fuente
fuente
fuente
para la API de Android
byte[]
paraBase64String
codificarfuente