Java надає клас Base64 для роботи з шифруванням. Ви можете зашифрувати та розшифрувати свої дані за допомогою запропонованих методів. Вам потрібно імпортувати java.util.Base64 у вихідний файл, щоб використовувати його методи.
Цей клас надає три різні кодери та декодери для шифрування інформації на кожному рівні. Ви можете використовувати ці методи на наступних рівнях.
Базове кодування та декодування
Він використовує алфавіт Base64, визначений Java у RFC 4648 і RFC 2045 для операцій кодування та декодування. Кодер не додає жодного символу-роздільника рядка. Декодер відхиляє дані, які містять символи поза алфавітом base64.
Кодування та декодування URL-адрес і імен файлів
Він використовує алфавіт Base64, визначений Java у RFC 4648 для операцій кодування та декодування. Кодер не додає жодного символу-роздільника рядка. Декодер відхиляє дані, які містять символи поза алфавітом base64.
MIME
Він використовує алфавіт Base64, як зазначено в RFC 2045 для операцій кодування та декодування. Закодований вихід має бути представлений у рядках, що містять не більше 76 символів у кожному, і використовувати символ повернення каретки « », за яким відразу слідує символ « » як роздільник рядка. У кінці закодованого виводу не додається роздільник рядків. Усі роздільники рядків або інші символи, яких немає в таблиці алфавіту base64, ігноруються під час операції декодування.
Вкладені класи Base64
Клас | опис |
---|---|
Base64.Decoder | Цей клас реалізує декодер для декодування байтових даних за допомогою схеми кодування Base64, як зазначено в RFC 4648 і RFC 2045. |
Base64.Encoder | Цей клас реалізує кодувальник для кодування байтових даних за допомогою схеми кодування Base64, як зазначено в RFC 4648 і RFC 2045. |
Методи Base64
методи | опис |
---|---|
public static Base64.Decoder getDecoder() | Він повертає Base64.Decoder, який декодує за допомогою схеми кодування типу Basic base64. |
public static Base64.Encoder getEncoder() | Він повертає Base64.Encoder, який кодує за допомогою схеми кодування типу Basic base64. |
публічний статичний Base64.Decoder getUrlDecoder() | Він повертає Base64.Decoder, який декодує за допомогою схеми кодування base64 безпечного типу URL-адреси та імені файлу. |
публічний статичний Base64.Decoder getMimeDecoder() | Він повертає Base64.Decoder, який декодує за допомогою схеми декодування типу MIME base64. |
public static Base64.Encoder getMimeEncoder() | Він повертає Base64.Encoder, який кодує за допомогою схеми кодування типу MIME base64. |
public static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) | Він повертає Base64.Encoder, який кодує за допомогою схеми кодування типу MIME base64 із заданою довжиною рядка та роздільниками рядків. |
public static Base64.Encoder getUrlEncoder() | Він повертає Base64.Encoder, який кодує за допомогою схеми кодування base64 безпечного типу URL-адреси та імені файлу. |
Методи Base64.Decoder
методи | опис |
---|---|
загальнодоступний байт [] декодувати (байт [] src) | Він декодує всі байти з вхідного масиву байтів за допомогою схеми кодування Base64, записуючи результати в щойно виділений вихідний масив байтів. Повернений масив байтів має довжину отриманих байтів. |
public byte[] decode (String src) | Він декодує рядок у кодуванні Base64 у щойно виділений масив байтів за допомогою схеми кодування Base64. |
public int decode(byte[] src, byte[] dst) | Він декодує всі байти з вхідного байтового масиву за допомогою схеми кодування Base64, записуючи результати в заданий вихідний байтовий масив, починаючи зі зміщення 0. |
публічне декодування ByteBuffer (буфер ByteBuffer) | Він декодує всі байти з вхідного байтового буфера за допомогою схеми кодування Base64, записуючи результати в нещодавно виділений ByteBuffer. |
загальнодоступне обгортання InputStream (InputStream є) | Він повертає вхідний потік для декодування потоку байтів у кодуванні Base64. |
Методи Base64.Encoder
методи | опис |
---|---|
загальнодоступний байт [] кодування (байт [] src) | Він кодує всі байти з указаного масиву байтів у щойно виділений масив байтів за допомогою схеми кодування Base64. Повернений масив байтів має довжину отриманих байтів. |
public int encode(byte[] src, byte[] dst) | Він кодує всі байти з указаного масиву байтів за допомогою схеми кодування Base64, записуючи отримані байти в заданий вихідний масив байтів, починаючи зі зміщення 0. |
public String encodeToString(byte[] src) | Він кодує вказаний масив байтів у рядок за допомогою схеми кодування Base64. |
загальнодоступне кодування ByteBuffer (буфер ByteBuffer) | Він кодує всі байти, що залишилися, із зазначеного буфера байтів у щойно виділений ByteBuffer за допомогою схеми кодування Base64. Після повернення позиція вихідного буфера буде оновлена до межі; його обмеження не буде змінено. Позиція поверненого вихідного буфера буде нульовою, а його обмеженням буде кількість результуючих закодованих байтів. |
загальнодоступне обгортання OutputStream (OutputStream os) | Він обертає вихідний потік для кодування байтових даних за допомогою схеми кодування Base64. |
public Base64.Encoder withoutPadding() | Він повертає екземпляр кодувальника, який кодує еквівалентно цьому, але без додавання символу заповнення в кінці закодованих байтових даних. |
Приклад Java Base64: базове кодування та декодування
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); } }
Вихід:
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
Приклад Java Base64: кодування та декодування 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); } }
Вихід:
Encoded URL: aHR0cDovL3d3dy5qYXZhdHBvaW50LmNvbS9qYXZhLXR1dG9yaWFsLw== Decoded URL: http://www.javatpoint.com/java-tutorial/
Приклад Java Base64: кодування та декодування 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); } }
Вихід:
Encoded MIME message: SGVsbG8sIApZb3UgYXJlIGluZm9ybWVkIHJlZ2FyZGluZyB5b3VyIGluY29uc2lzdGVuY3kgb2Yg d29yaw== Decoded message: Hello, You are informed regarding your inconsistency of work