Перейти к содержанию
Избранное

Кодировщик Base64

Обновлено:

Введите текст, чтобы преобразовать его в строку Base64. Кодировщик работает с ASCII и другими однобайтовыми символами; символы вроде эмодзи могут вызвать ошибку кодирования.

Инструмент кодирования текста в Base64

Поля ввода
Если включено, результат будет автоматически обновляться при изменении любого значения.

Формула кодировщика Base64

Формула
\[ L=4\left\lceil\frac{n}{3}\right\rceil \]

Где:

  • \(n\) — количество входных байтов.
  • \(L\) — количество символов в результате Base64, включая заполнение.

Base64 делит входные данные на группы по три байта и представляет каждую группу четырьмя символами. Если последняя группа содержит меньше трёх байтов, в результате используются один или два символа = в качестве заполнения.

Кодировщик Base64 — пример расчёта

Пример: введите текст по умолчанию, Hello world!. Его 12 поддерживаемых символов кодируются как 12 байтов, образуя четыре полные группы по три байта.

\[ \operatorname{Base64}(\text{Hello world!})=\text{SGVsbG8gd29ybGQh} \]

\[ L=4\left\lceil\frac{12}{3}\right\rceil=16 \]

Результат: SGVsbG8gd29ybGQh — 16-символьная строка Base64 без заполнения.

Как пользоваться кодировщиком Base64

  1. Введите или вставьте исходный текст в поле «Текст для кодирования». Можно оставить Hello world!, чтобы проверить пример выше.
  2. Прочитайте закодированную строку в поле «Результат в Base64».
  3. Используйте функцию копирования результата, если нужно вставить строку в другое приложение. Сохраняйте конечные символы =: они являются частью закодированного значения.

Если в поле «Результат в Base64» отображается «Ошибка кодирования», значит текст содержит символ, который этот кодировщик не может обработать напрямую. Прежде чем использовать результат в приложении, ознакомьтесь с ограничениями по символами ниже.

Что делает кодирование Base64

Base64 — это способ представления байтов с помощью ограниченного набора печатаемых символов: заглавных и строчных букв, цифр, а также + и /. Это полезно, когда формату или системе нужен текст, а не исходные байты. Результат также может заканчиваться на = или == в зависимости от длины входных данных.

Закодированная строка — это не другой смысл вашего текста, а иное представление входных байтов. Любой может восстановить эти байты с помощью декодера Base64. Поэтому Base64 не обеспечивает ни шифрования, ни секретности. Не считайте закодированный пароль, токен или другое конфиденциальное значение защищённым лишь потому, что его сложно прочитать с первого взгляда.

Результат Base64 обычно длиннее исходных данных: каждые три байта превращаются в четыре символа, то есть объём увеличивается примерно на треть ещё до добавления какого-либо внешнего форматирования. Для коротких входных данных заполнение может увеличить относительный прирост ещё сильнее. Формула выше даёт длину результата для входных данных размером \(n\) байтов, но не сообщает, какими будут закодированные символы. Эти символы зависят от фактических значений байтов.

Поддержка символов и практические ограничения

Этот калькулятор использует функцию btoa() браузера. Она принимает текст, коды отдельных символов которого укладываются в один байт — от 0 до 255. Обычные английские буквы, цифры, пробелы и знаки препинания работают. Многие другие символы, включая эмодзи и большинство нелатинских письменностей, приводят к ошибке «Ошибка кодирования». Эта страница не выполняет предварительное преобразование текста в UTF-8.

Это различие важно и для символов с диакритикой. Символ вроде é здесь может быть принят как один байт, но его результат не является кодированием UTF-8-байтов этого символа в Base64. Если принимающая система ожидает UTF-8, используйте кодировщик, который явно преобразует текст в UTF-8 перед применением Base64.

Несмотря на то, что Base64 часто используется для файлов, в этом калькуляторе есть текстовое поле, а не загрузка файлов. Вставка видимого содержимого изображения или другого двоичного файла не позволит надёжно закодировать этот файл. Используйте инструмент с поддержкой файлов, когда вам нужен Base64 для файла.

Base64 также решает задачу, отличную от URL-кодирования. Если вам нужно экранировать символы для размещения в URL, используйте URL-кодировщик. Стандартный Base64 сам может содержать +, / и =, что может потребовать специальной обработки в URL. Чтобы просмотреть значения символов, а не кодировать весь ввод в Base64, попробуйте ASCII-конвертер.

Часто задаваемые вопросы

Как закодировать текст в Base64 вручную?

Преобразуйте каждый входной байт в восемь двоичных разрядов, затем разбейте объединённые биты на группы по шесть. Прочитайте каждую шестибитовую группу как число от 0 до 63 и найдите его в стандартном алфавите Base64. Например, байты слова «Man» дают шестибитовые значения 19, 22, 5 и 46, которые соответствуют «TWFu». Для неполной последней группы добавьте нулевые биты перед поиском её последнего символа.

Почему другой кодировщик Base64 выдаёт другой результат для é?

Два кодировщика могут начинать с разных байтов. Этот калькулятор рассматривает é как один байт со значением 233, получая «6Q==». Кодировщик UTF-8 сначала представляет é как два байта — 195 и 169, получая «w6k=». Ни один из результатов не является ошибочным по своей сути, но декодер должен использовать ту же кодировку символов, что и кодировщик, чтобы восстановить задуманный текст.

Что произойдёт, если закодировать пустую строку?

Пустой ввод кодируется в пустую строку Base64, а не в знак равенства или специальный маркер. Нет байтов для преобразования и нет последней группы, требующей заполнения. Это может иметь значение при отправке данных в API: пустое закодированное значение может быть допустимым, но принимающее приложение может относиться к пропущенному полю иначе, чем к полю с пустой строкой.

Base64 — это то же самое, что Base64URL?

Нет. Base64URL заменяет символы «+» и «/» стандартного алфавита на «-» и «_»; кроме того, в нём часто опускается конечное заполнение. Эти изменения упрощают размещение закодированных данных в компонентах URL и форматах вроде JWT. Этот калькулятор выдаёт стандартный Base64, поэтому перед копированием результата проверьте, не требует ли принимающий сервис именно Base64URL.

Можно ли удалить конечные знаки равенства из строки Base64?

Только если принимающий формат явно допускает Base64 без заполнения. Некоторые декодеры могут вычислить отсутствующее заполнение по длине строки, тогда как другие требуют его наличия. Удаление «=» не меняет исходные данные, но может сделать строку недопустимой для строгого декодера. Сохраняйте заполнение при копировании результата этого калькулятора, если только принимающая сторона не указала иное.

Влияет ли регистр букв и пробелы в Base64?

Регистр важен: заглавные и строчные буквы представляют разные значения, поэтому изменение регистра буквы может изменить декодированные байты. С пробелами дело обстоит иначе. Некоторые декодеры игнорируют разрывы строк, вставленные в длинные строки Base64, тогда как строгие декодеры отклоняют их. Для максимально надёжного результата при копировании и вставке сохраняйте каждый символ в точности и не добавляйте пробелы или разрывы строк.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *