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