Czy ktoś wie, jak zdekodować i zakodować ciąg w Base64 za pomocą Base64. Korzystam z następującego kodu, ale nie działa.
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;
a następnie możesz użyćBase64.encodeToString
&Base64.decode
zgodnie ze swoimi potrzebamiOdpowiedzi:
Pierwszy:
Koniec nadawczy:
text.getBytes(encodingName)
)Base64
klasyOdbieranie końca:
Base64
klasynew String(bytes, encodingName)
)Więc coś takiego:
Lub z
StandardCharsets
:źródło
UTF-8
gwarantuje się, że jest to prawidłowe kodowanie w Javie: patrz docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html . Trzeba przyznać, że w tych dniachStandardCharsets.UTF_8
zamiast tego. Zaktualizowałem odpowiedź, aby określić, że powinieneś być pewny obecności zestawu znaków, ale prawie zawsze używałbym UTF-8.Dla każdego innego, kto znalazł się tutaj, szukając informacji na temat dekodowania łańcucha zakodowanego
Base64.encodeBytes()
, oto moje rozwiązanie:Ponadto obsługuję starsze wersje Androida, więc korzystam z biblioteki Base64 Roberta Hardera z http://iharder.net/base64
źródło
Dla Kotlin mb lepiej użyć tego:
Przykład:
źródło
Jeśli używasz Kotlin, użyj tego w ten sposób
Do kodowania
Do dekodowania
źródło
coś jak
źródło
Aby zaszyfrować:
Aby odszyfrować:
źródło
W oparciu o poprzednie odpowiedzi używam następujących metod narzędziowych na wypadek, gdyby ktoś chciał z nich skorzystać.
źródło
Dla interfejsu API poziomu 26+
Patrz: https://developer.android.com/reference/java/util/Base64.Encoder.html#encodeToString (byte [])
źródło
Klasa „java.util.Base64” zapewnia funkcje kodowania i dekodowania informacji w formacie Base64.
Jak zdobyć koder Base64?
Jak zdobyć dekoder Base64?
Jak zakodować dane?
Jak dekodować dane?
Możesz uzyskać więcej informacji pod tym linkiem .
źródło
źródło
źródło
dla Androida API
byte[]
doBase64String
koderaźródło