Что такое Base64 кодирование?
Кодирование Base64 — это способ преобразования данных (обычно двоичных) в набор символов ASCII. Важно отметить, что Base64 не является методом шифрования или сжатия, хотя иногда его путают с шифрованием из-за того, что данные становятся нечитаемыми. На самом деле, размер данных в Base64 увеличивается в 1,3333 раза по сравнению с исходными.
Base64 — самая распространённая техника кодирования. Два других популярных формата — Base16 и Base32.
Кодирование Base64 — один из самых частых способов преобразования двоичных данных в обычный текст ASCII. Это удобный формат для обмена данными между системами, которые не могут работать с двоичными данными напрямую, например, для изображений в HTML или веб-запросов.
Как работает Base64?
Преобразование данных в Base64 состоит из нескольких шагов. Вот как это работает для текстовых строк:
- Вычислить 8-битное двоичное представление входного текста
- Перегруппировать 8-битные данные в блоки по 6 бит
- Найти десятичное значение каждого 6-битного блока
- Найти символ Base64 для каждого десятичного значения по таблице соответствия
| Значение | Символ | Значение | Символ |
|---|---|---|---|
| 0 | A | 32 | g |
| 1 | B | 33 | h |
| 2 | C | 34 | i |
| 3 | D | 35 | j |
| 4 | E | 36 | k |
| 5 | F | 37 | l |
| 6 | G | 38 | m |
| 7 | H | 39 | n |
| 8 | I | 40 | o |
| 9 | J | 41 | p |
| 10 | K | 42 | q |
| 11 | L | 43 | r |
| 12 | M | 44 | s |
| 13 | N | 45 | t |
| 14 | O | 46 | u |
| 15 | P | 47 | v |
| 16 | Q | 48 | w |
| 17 | R | 49 | x |
| 18 | S | 50 | y |
| 19 | T | 51 | z |
| 20 | U | 52 | 0 |
| 21 | V | 53 | 1 |
| 22 | W | 54 | 2 |
| 23 | X | 55 | 3 |
| 24 | Y | 56 | 4 |
| 25 | Z | 57 | 5 |
| 26 | a | 58 | 6 |
| 27 | b | 59 | 7 |
| 28 | c | 60 | 8 |
| 29 | d | 61 | 9 |
| 30 | e | 62 | + |
| 31 | f | 63 | / |
Зачем использовать Base64?
Передача данных в двоичном формате иногда рискованна, так как не все приложения и сетевые системы умеют работать с сырыми двоичными данными. Набор символов ASCII, напротив, широко известен и прост в обработке для большинства систем.
Например, почтовые серверы ожидают текстовые данные, поэтому обычно используется ASCII. Если вы хотите отправить изображение или другой двоичный файл на почтовый сервер, сначала нужно закодировать его в текстовый формат, желательно ASCII. Вот тут Base64 оказывается крайне полезным.
Типичные сценарии использования
Вы можете использовать Base64 для представления двоичных данных в формате, совместимом с HTML, JavaScript и CSS. Например, можно встроить изображение прямо в CSS или JavaScript файл с помощью Base64.
Base64 можно использовать для преобразования входных данных, таких как данные формы или JSON, в строку с ограниченным набором символов, безопасным для URL. Однако из-за того, как некоторые серверы интерпретируют символы + и /, рекомендуется использовать encodeURIComponent.
Ограничения Base64
Base64 ни в коем случае не является надёжным методом шифрования.
Base64 также не является методом сжатия. Кодирование строки в Base64 обычно увеличивает длину результата на 33%.