Ответ
Base64 — это схема кодирования, которая преобразует любые двоичные данные в строку, состоящую только из печатных ASCII-символов (A-Z, a-z, 0-9, +, /). Это позволяет безопасно передавать бинарные данные (например, изображения, файлы) через протоколы, предназначенные для текста (HTTP, JSON, XML, email).
Пример кодирования и декодирования в Java:
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String originalData = "Hello, Java!";
// Кодирование
String encodedString = Base64.getEncoder()
.encodeToString(originalData.getBytes());
System.out.println("Encoded: " + encodedString); // SGVsbG8sIEphdmEh
// Декодирование
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);
System.out.println("Decoded: " + decodedString); // Hello, Java!
}
}
Ключевые особенности:
- Увеличение объема: Размер данных увеличивается примерно на 33%.
- Паддинг (
=): В конце закодированной строки могут добавляться символы=для выравнивания длины. - URL-safe вариант:
Base64.getUrlEncoder()использует-и_вместо+и/, чтобы строка могла быть частью URL или параметра запроса.