logo

Kódování a dekódování Java Base64

Java poskytuje třídu Base64, která se zabývá šifrováním. Svá data můžete šifrovat a dešifrovat pomocí poskytnutých metod. Abyste mohli používat jeho metody, musíte do zdrojového souboru importovat java.util.Base64.

Tato třída poskytuje tři různé kodéry a dekodéry pro šifrování informací na každé úrovni. Tyto metody můžete použít na následujících úrovních.


Základní kódování a dekódování

Pro operace kódování a dekódování používá abecedu Base64 specifikovanou Java v RFC 4648 a RFC 2045. Kodér nepřidává žádný znak pro oddělování řádků. Dekodér odmítá data, která obsahují znaky mimo abecedu base64.


Kódování a dekódování URL a názvu souboru

Pro operace kódování a dekódování používá abecedu Base64 specifikovanou Java v RFC 4648. Kodér nepřidává žádný znak pro oddělování řádků. Dekodér odmítá data, která obsahují znaky mimo abecedu base64.


MIM

Pro operace kódování a dekódování používá abecedu Base64 specifikovanou v RFC 2045. Kódovaný výstup musí být reprezentován řádky, každý o délce nejvýše 76 znaků, a jako oddělovač řádku používá znak návratu vozíku ' ' následovaný bezprostředně odřádkováním ' '. Na konec kódovaného výstupu není přidán žádný oddělovač řádků. Všechny oddělovače řádků nebo jiné znaky, které se nenacházejí v tabulce abecedy base64, jsou při operaci dekódování ignorovány.


Vnořené třídy Base64

Třída Popis
Base64.Dekodér Tato třída implementuje dekodér pro dekódování bajtových dat pomocí schématu kódování Base64, jak je uvedeno v RFC 4648 a RFC 2045.
Base64.Kodér Tato třída implementuje kodér pro kódování bajtových dat pomocí schématu kódování Base64, jak je uvedeno v RFC 4648 a RFC 2045.

Metody Base64

Metody Popis
public static Base64.Decoder getDecoder() Vrací Base64.Decoder, který dekóduje pomocí základního typového schématu kódování base64.
public static Base64.Encoder getEncoder() Vrací Base64.Encoder, který kóduje pomocí základního typového schématu kódování base64.
public static Base64.Decoder getUrlDecoder() Vrací Base64.Decoder, který dekóduje pomocí bezpečného schématu kódování base64 typu URL a název souboru.
public static Base64.Decoder getMimeDecoder() Vrací Base64.Decoder, který dekóduje pomocí schématu dekódování base64 typu MIME.
public static Base64.Encoder getMimeEncoder() Vrací Base64.Encoder, který kóduje pomocí schématu kódování base64 typu MIME.
public static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) Vrací Base64.Encoder, který kóduje pomocí schématu kódování typu MIME base64 se zadanou délkou řádku a oddělovači řádků.
public static Base64.Encoder getUrlEncoder() Vrací Base64.Encoder, který kóduje pomocí bezpečného schématu kódování base64 typu URL a název souboru.

Base64.Decoder Methods

Metody Popis
public byte[] decode(byte[] src) Dekóduje všechny bajty ze vstupního bajtového pole pomocí kódovacího schématu Base64 a zapisuje výsledky do nově přiděleného výstupního bajtového pole. Vrácené bajtové pole má délku výsledných bajtů.
public byte[] decode (String src) Dekóduje řetězec zakódovaný v Base64 do nově přiděleného bajtového pole pomocí schématu kódování Base64.
public int decode(byte[] src, byte[] dst) Dekóduje všechny bajty ze vstupního bajtového pole pomocí kódovacího schématu Base64 a zapisuje výsledky do daného výstupního bajtového pole, počínaje offsetem 0.
veřejné dekódování ByteBuffer (vyrovnávací paměť ByteBuffer) Dekóduje všechny bajty ze vstupní bajtové vyrovnávací paměti pomocí schématu kódování Base64 a zapisuje výsledky do nově přiděleného ByteBufferu.
veřejné zalomení InputStream (InputStream je) Vrací vstupní proud pro dekódování datového proudu zakódovaného v Base64.

Metody Base64.Encoder

Metody Popis
public byte[] encode(byte[] src) Zakóduje všechny bajty ze zadaného bajtového pole do nově přiděleného bajtového pole pomocí schématu kódování Base64. Vrácené bajtové pole má délku výsledných bajtů.
public int encode(byte[] src, byte[] dst) Zakóduje všechny bajty ze zadaného bajtového pole pomocí schématu kódování Base64, přičemž výsledné bajty zapíše do daného výstupního bajtového pole, počínaje offsetem 0.
veřejný řetězec encodeToString(byte[] src) Zakóduje zadané bajtové pole do řetězce pomocí schématu kódování Base64.
veřejné kódování ByteBuffer (ByteBuffer buffer) Zakóduje všechny zbývající bajty ze zadané bajtové vyrovnávací paměti do nově přiděleného ByteBufferu pomocí schématu kódování Base64. Po návratu bude pozice zdrojové vyrovnávací paměti aktualizována na její limit; jeho limit se nezmění. Pozice vrácené výstupní vyrovnávací paměti bude nulová a jejím limitem bude počet výsledných zakódovaných bajtů.
public OutputStream wrap (OutputStream os) Zabalí výstupní proud pro kódování bajtových dat pomocí schématu kódování Base64.
public Base64.Encoder withoutPadding() Vrací instanci kodéru, která kóduje ekvivalentně této instanci, ale bez přidání jakéhokoli výplňového znaku na konec zakódovaných bajtových dat.

Příklad Java Base64: Základní kódování a dekódování

 import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getEncoder(); // Creating byte array bytebyteArr[] = {1,2}; // encoding byte array bytebyteArr2[] = encoder.encode(byteArr); System.out.println('Encoded byte array: '+byteArr2); bytebyteArr3[] = newbyte[5]; // Make sure it has enough size to store copied bytes intx = encoder.encode(byteArr,byteArr3); // Returns number of bytes written System.out.println('Encoded byte array written to another array: '+byteArr3); System.out.println('Number of bytes written: '+x); // Encoding string String str = encoder.encodeToString('JavaTpoint'.getBytes()); System.out.println('Encoded string: '+str); // Getting decoder Base64.Decoder decoder = Base64.getDecoder(); // Decoding string String dStr = new String(decoder.decode(str)); System.out.println('Decoded string: '+dStr); } } 

Výstup:

 Encoded byte array: [B@6bc7c054 Encoded byte array written to another array: [B@232204a1 Number of bytes written: 4 Encoded string: SmF2YVRwb2ludA== Decoded string: JavaTpoint 

Příklad Java Base64: Kódování a dekódování URL

 import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getUrlEncoder(); // Encoding URL String eStr = encoder.encodeToString('http://www.javatpoint.com/java-tutorial/'.getBytes()); System.out.println('Encoded URL: '+eStr); // Getting decoder Base64.Decoder decoder = Base64.getUrlDecoder(); // Decoding URl String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded URL: '+dStr); } } 

Výstup:

 Encoded URL: aHR0cDovL3d3dy5qYXZhdHBvaW50LmNvbS9qYXZhLXR1dG9yaWFsLw== Decoded URL: http://www.javatpoint.com/java-tutorial/ 

Příklad Java Base64: Kódování a dekódování MIME

 package Base64Encryption; import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting MIME encoder Base64.Encoder encoder = Base64.getMimeEncoder(); String message = 'Hello, 
You are informed regarding your inconsistency of work'; String eStr = encoder.encodeToString(message.getBytes()); System.out.println('Encoded MIME message: '+eStr); // Getting MIME decoder Base64.Decoder decoder = Base64.getMimeDecoder(); // Decoding MIME encoded message String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded message: '+dStr); } } 

Výstup:

 Encoded MIME message: SGVsbG8sIApZb3UgYXJlIGluZm9ybWVkIHJlZ2FyZGluZyB5b3VyIGluY29uc2lzdGVuY3kgb2Yg d29yaw== Decoded message: Hello, You are informed regarding your inconsistency of work