Alguém sabe como decodificar e codificar uma string no Base64 usando o Base64. Estou usando o código a seguir, mas não 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)));
import android.util.Base64;
e, em seguida, pode usarBase64.encodeToString
eBase64.decode
de acordo com suas necessidadesRespostas:
Primeiro:
Extremidade de transmissão:
text.getBytes(encodingName)
)Base64
classeFim de recebimento:
Base64
classenew String(bytes, encodingName)
)Então, algo como:
Ou com
StandardCharsets
:fonte
UTF-8
é garantido como uma codificação válida em Java: consulte docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html . É certo que hoje em dia eu especificariaStandardCharsets.UTF_8
. Atualizei a resposta para especificar que você deve confiar na presença do conjunto de caracteres, mas eu sempre usaria o UTF-8.Para qualquer um que acabou aqui enquanto procurava informações sobre como decodificar uma string codificada
Base64.encodeBytes()
, aqui estava minha solução:Além disso, estou suportando versões mais antigas do Android, então estou usando a biblioteca Base64 de Robert Harder em http://iharder.net/base64
fonte
Para o Kotlin mb, é melhor usar isso:
Exemplo:
fonte
Se você estiver usando o Kotlin, use como este
Para codificação
Para decodificação
fonte
algo como
fonte
Para criptografar:
Para descriptografar:
fonte
Com base nas respostas anteriores, estou usando os seguintes métodos utilitários, caso alguém queira usá-lo.
fonte
Para o nível 26+ da API
Ref: https://developer.android.com/reference/java/util/Base64.Encoder.html#encodeToString (byte [])
fonte
A classe 'java.util.Base64' fornece funcionalidade para codificar e decodificar as informações no formato Base64.
Como obter o codificador Base64?
Como obter o Decodificador Base64?
Como codificar os dados?
Como decodificar os dados?
Você pode obter mais detalhes neste link .
fonte
fonte
fonte
para API Android
byte[]
paraBase64String
codificadorfonte