Файлы и страницы

Конвертер файлов в Base64

Работает локально

Сам инструмент доступен на английском языке; на этой странице приведено его описание на вашем языке.

Используйте Конвертер файлов в Base64

Для чего это нужно

Перетащите или выберите файл, чтобы получить его в виде data URI в Base64, или вставьте data URI, чтобы декодировать его обратно в файл для скачивания.

Приложение работает полностью в браузере: никакие введенные вами данные не передаются на сервер.

Как использовать Конвертер файлов в Base64

  1. Выберите или перетащите файл. Нажмите на поле с пунктирной рамкой, чтобы выбрать файл, или перетащите файл на него. Если перетащить несколько файлов, преобразуется только первый.
  2. Посмотрите data URI. Поле ниже заполняется строкой data:type;base64, за которой следует закодированный файл. Строка под ним показывает исходный размер, размер в Base64 и накладные расходы.
  3. Скопируйте результат. Нажмите Copy, чтобы скопировать весь data URI в буфер обмена, например чтобы вставить его в тестовую страницу или в заметку по делу.
  4. Вставьте data URI для декодирования. Чтобы выполнить обратную операцию, вставьте URI данных в нижнее поле, например data:image/png;base64,... Допускаются такие параметры, как ;charset=utf-8, символы переноса строки, URI данных в кодировке Base64, безопасной для использования в URL, и в процентной кодировке.
  5. Скачайте и проверьте файл. Нажмите Decode & Download, чтобы сохранить файл. Если он получен из подозрительного письма или со страницы, проверьте его в File Type Sniffer и File Hash, прежде чем открывать.

Пример

Небольшое изображение

Ввод
A small PNG file, dropped onto the box or chosen by clicking it
Как выглядит результат
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==

Original: 70 bytes | Base64: 96 bytes (37% overhead) | Data URI: 118 bytes

В поле ниже отображаются данные: image/png;base64,...; в строке указаны исходный размер, размер кода Base64 с учетом накладных расходов и длина всего URI данных: размер кода Base64 примерно на треть превышает размер файла.

Что проверяется

СигналЧто это означает
MIME-тип после data:Это тип, который браузер сообщает для файла; обычно он определяется по расширению в имени файла. Он не доказывает, что на самом деле содержится в файле, поэтому переименованный файл сохраняет вводящий в заблуждение тип.
Исходный размерРазмер файла в КБ с одним знаком после запятой. Файлы меньше примерно 50 байт показываются как 0.0 KB — это округление, а не пустой файл.
Размер в Base64 и накладные расходыДлина части в Base64 без префикса data:type;base64, и то, насколько она больше файла. У больших файлов значение устанавливается около 33 процентов; у очень маленьких оно больше из-за дополнения (padding).
Имя декодированного файлаИмя загружаемого файла состоит из слова «decoded» и расширения, соответствующего типу MIME, например «decoded.png», «decoded.txt» для типа «text/plain» или «decoded.bin», если тип не указан. В строке под кнопкой указаны название файла, его размер и тип.
Текст под кнопкойЕсли URI данных не удается прочитать или в кодировке Base64 содержатся символы, не входящие в набор A–Z, a–z, 0–9, + и /, под кнопкой отобразится сообщение вместо загрузки.
Данные остаются на устройствеКодирование использует FileReader браузера, а декодирование собирает файл в памяти, поэтому этот инструмент никуда не отправляет ни файл, ни вставленный текст.

Еще примеры

Тестовый текст из RFC 4648

Ввод
A text file foobar.txt that contains only the six letters foobar, with no line break
Результат

data:text/plain;base64,Zm9vYmFy и строка Original: 0.0 KB | Base64: 0.0 KB (33% overhead). Zm9vYmFy — опубликованный тестовый вектор RFC 4648 для foobar.

Декодирование короткого текста

Ввод
data:text/plain;base64,Zm9vYg==
Результат

Функция «Decode & Download» сохраняет 4-байтовый файл с именем decoded.txt, содержащий текст «foob», а строка под кнопкой указывает название файла, его размер и тип «text/plain».

SVG-изображение с необычным расширением

Ввод
data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLz4=
Результат

Браузер сохраняет пустое SVG-изображение размером 41 байт с именем decoded.svg+xml. Переименуйте его в .svg, если хотите его посмотреть.

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

Что получается на выходе?

URI данных в формате data:type;base64,data, где type — тип MIME, который ваш браузер указывает для данного файла (application/octet-stream, если тип не указан). Кодировка Base64 увеличивает размер данных примерно на треть; при этом это кодировка, которую любой может расшифровать, а не шифрование.

Какие URI данных может считывать приложение «Decode & Download»?

URI данных в кодировке Base64, такие как data:image/png;base64,... или data:text/plain;charset=utf-8;base64,..., в том числе содержащие символы переноса строки или символы, допустимые в URL-адресах, а также URI с процентной кодировкой без ;base64; в остальных случаях под кнопкой отображается сообщение. Файлы, декодированные из фишинговых вложений, могут быть вредоносными, поэтому перед открытием проверьте их с помощью File Type Sniffer.

Загружается ли файл куда-нибудь?

Нет. Файл считывается с помощью API FileReader, а URI данных формируется на этой странице; ничего не загружается. Конвертируются файлы размером до 50 МБ, поскольку URI данных большего размера может привести к зависанию вкладки.

Почему в фишинговом письме или на странице есть длинная строка data:...?

HTML-вложения и фишинговые страницы часто встраивают логотипы, шрифты, скрипты или целые файлы в виде data URI в Base64. Тогда содержимое передаётся внутри страницы, а не загружается с отдельного адреса. Декодирование строки здесь показывает, что в ней спрятано, без открытия исходной страницы.

Можно ли декодировать обычный Base64 без префикса data:?

Да, если добавить его. Введите «data:application/octet-stream;base64» перед строкой и нажмите «Декодировать и скачать» — вы получите файл с именем decoded.bin. Для коротких текстов кодер/декодер Base64 работает быстрее.

Почему у маленьких файлов накладные расходы больше 33 процентов?

Base64 превращает каждые 3 байта в 4 символа и дополняет последнюю группу знаками =. В файле из нескольких байт это дополнение составляет большую долю, поэтому для файла в 1 байт показывается 300 процентов. Начиная с нескольких килобайт значение держится около 33 процентов.

Безопасно ли открывать SVG- или HTML-файл, декодированный из подозрительного сообщения?

Не в вашем обычном браузере. Файлы SVG и HTML могут содержать скрипты и ссылки, которые срабатывают при открытии. Сначала посмотрите тип файла и хеш, а открывайте такие файлы только в песочнице или на отдельной машине для анализа.

Пояснение терминов

Исследование PhishDestroy