Java fornisce una classe Base64 per gestire la crittografia. Puoi crittografare e decrittografare i tuoi dati utilizzando i metodi forniti. È necessario importare java.util.Base64 nel file sorgente per utilizzare i suoi metodi.
Questa classe fornisce tre diversi codificatori e decodificatori per crittografare le informazioni a ciascun livello. È possibile utilizzare questi metodi ai seguenti livelli.
Codifica e decodifica di base
Utilizza l'alfabeto Base64 specificato da Java in RFC 4648 e RFC 2045 per le operazioni di codifica e decodifica. Il codificatore non aggiunge alcun carattere separatore di riga. Il decodificatore rifiuta i dati che contengono caratteri esterni all'alfabeto base64.
Codifica e decodifica di URL e nomi di file
Utilizza l'alfabeto Base64 specificato da Java nella RFC 4648 per le operazioni di codifica e decodifica. Il codificatore non aggiunge alcun carattere separatore di riga. Il decodificatore rifiuta i dati che contengono caratteri esterni all'alfabeto base64.
MIMO
Utilizza l'alfabeto Base64 come specificato nella RFC 2045 per le operazioni di codifica e decodifica. L'output codificato deve essere rappresentato in righe di non più di 76 caratteri ciascuna e utilizza un ritorno a capo ' ' seguito immediatamente da un avanzamento riga ' ' come separatore di riga. Nessun separatore di riga viene aggiunto alla fine dell'output codificato. Tutti i separatori di riga o altri caratteri non trovati nella tabella alfabetica base64 vengono ignorati nell'operazione di decodifica.
Classi nidificate di Base64
Classe | Descrizione |
---|---|
Base64.Decoder | Questa classe implementa un decodificatore per decodificare dati byte utilizzando lo schema di codifica Base64 come specificato in RFC 4648 e RFC 2045. |
Base64.Encoder | Questa classe implementa un codificatore per codificare dati byte utilizzando lo schema di codifica Base64 come specificato in RFC 4648 e RFC 2045. |
Metodi Base64
Metodi | Descrizione |
---|---|
pubblico statico Base64.Decoder getDecoder() | Restituisce un Base64.Decoder che decodifica utilizzando lo schema di codifica base64 di tipo Basic. |
pubblico statico Base64.Encoder getEncoder() | Restituisce un Base64.Encoder che codifica utilizzando lo schema di codifica base64 di tipo Basic. |
pubblico statico Base64.Decoder getUrlDecoder() | Restituisce un Base64.Decoder che decodifica utilizzando lo schema di codifica base64 di tipo sicuro URL e nome file. |
pubblico statico Base64.Decoder getMimeDecoder() | Restituisce un Base64.Decoder che decodifica utilizzando lo schema di decodifica base64 di tipo MIME. |
pubblico statico Base64.Encoder getMimeEncoder() | Restituisce un Base64.Encoder che codifica utilizzando lo schema di codifica base64 di tipo MIME. |
public static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) | Restituisce un Base64.Encoder che codifica utilizzando lo schema di codifica base64 di tipo MIME con la lunghezza di riga e i separatori di riga specificati. |
pubblico statico Base64.Encoder getUrlEncoder() | Restituisce un Base64.Encoder che codifica utilizzando lo schema di codifica base64 di tipo sicuro URL e nome file. |
Metodi Base64.Decoder
Metodi | Descrizione |
---|---|
byte pubblico[] decodifica(byte[] src) | Decodifica tutti i byte dall'array di byte di input utilizzando lo schema di codifica Base64, scrivendo i risultati in un array di byte di output appena allocato. L'array di byte restituito ha la stessa lunghezza dei byte risultanti. |
byte pubblico[] decodifica(String src) | Decodifica una stringa codificata Base64 in un array di byte appena allocato utilizzando lo schema di codifica Base64. |
public int decode(byte[] src, byte[] dst) | Decodifica tutti i byte dall'array di byte di input utilizzando lo schema di codifica Base64, scrivendo i risultati nell'array di byte di output specificato, a partire dall'offset 0. |
decodifica ByteBuffer pubblica (buffer ByteBuffer) | Decodifica tutti i byte dal buffer dei byte di input utilizzando lo schema di codifica Base64, scrivendo i risultati in un ByteBuffer appena allocato. |
wrap pubblico di InputStream (InputStream è) | Restituisce un flusso di input per decodificare il flusso di byte codificati Base64. |
Metodi Base64.Encoder
Metodi | Descrizione |
---|---|
codifica byte[] pubblica(byte[] src) | Codifica tutti i byte dall'array di byte specificato in un array di byte appena allocato utilizzando lo schema di codifica Base64. L'array di byte restituito ha la stessa lunghezza dei byte risultanti. |
public int encode(byte[] src, byte[] dst) | Codifica tutti i byte dall'array di byte specificato utilizzando lo schema di codifica Base64, scrivendo i byte risultanti nell'array di byte di output specificato, a partire dall'offset 0. |
public String encodeToString(byte[] src) | Codifica l'array di byte specificato in una stringa utilizzando lo schema di codifica Base64. |
codifica ByteBuffer pubblica (buffer ByteBuffer) | Codifica tutti i byte rimanenti dal buffer di byte specificato in un ByteBuffer appena allocato utilizzando lo schema di codifica Base64. Al ritorno, la posizione del buffer di origine verrà aggiornata al suo limite; il suo limite non sarà stato modificato. La posizione del buffer di output restituito sarà zero e il suo limite sarà il numero di byte codificati risultanti. |
wrap pubblico OutputStream(OutputStream os) | Avvolge un flusso di output per codificare i dati byte utilizzando lo schema di codifica Base64. |
public Base64.Encoder senzaPadding() | Restituisce un'istanza del codificatore che codifica in modo equivalente a questa, ma senza aggiungere alcun carattere di riempimento alla fine dei dati byte codificati. |
Esempio Java Base64: codifica e decodifica di base
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); } }
Produzione:
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
Esempio Java Base64: codifica e decodifica 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); } }
Produzione:
Encoded URL: aHR0cDovL3d3dy5qYXZhdHBvaW50LmNvbS9qYXZhLXR1dG9yaWFsLw== Decoded URL: http://www.javatpoint.com/java-tutorial/
Esempio Java Base64: codifica e decodifica 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); } }
Produzione:
Encoded MIME message: SGVsbG8sIApZb3UgYXJlIGluZm9ybWVkIHJlZ2FyZGluZyB5b3VyIGluY29uc2lzdGVuY3kgb2Yg d29yaw== Decoded message: Hello, You are informed regarding your inconsistency of work