Base64 File Encoder

Кодируйте любой файл в Base64 — PDF, ZIP, изображения и многое другое

Перетащите файл или кликните для загрузки

Любой тип файла — PDF, ZIP, изображения, двоичные файлы

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

Кодирование файлов Base64 преобразует двоичные файлы (PDF, ZIP, изображения, исполняемые файлы, шрифты, аудио) в простой текст ASCII, используя алфавит, определённый в RFC 4648. Каждые три байта двоичного входа становятся четырьмя символами Base64, создавая текстовое представление, которое может передаваться по каналам, предназначенным только для текста: JSON API payload, XML-документы, тело электронной почты, HTML-атрибуты и переменные окружения.

В отличие от кодирования текста в Base64 (которое работает со строками), кодирование файла в Base64 читает необработанный поток байтов любого файла независимо от его формата. Двоичные заголовки PDF, сжатые блоки ZIP и пиксельные данные PNG обрабатываются одинаково: как последовательность октетов для перекодирования. Результат всегда корректный ASCII, безопасный для встраивания в любое место, принимающее печатные символы.

Компромисс — размер: вывод Base64 примерно на 33% больше исходного двоичного файла. Для PDF объёмом 1 МБ это означает примерно 1,33 МБ текста Base64. Эта дополнительная нагрузка присуща кодированию и её не может избежать ни одна реализация. Тем не менее кодирование файлов Base64 остаётся стандартным методом встраивания двоичных данных в текстовые форматы, указанным в MIME (RFC 2045), URI данных (RFC 2397) и JSON Web Tokens (RFC 7519).

Почему использовать этот Base64 File Encoder?

Этот инструмент кодирует файлы в Base64 прямо в вашем браузере с помощью FileReader API. Никакой файл не загружается на сервер — вся конвертация происходит на клиенте в JavaScript.

🛡
Обработка с приоритетом приватности
Ваш файл никогда не покидает ваше устройство. FileReader API читает файл в память локально, а вывод Base64 полностью генерируется в браузере. Сетевых запросов не делается.
Мгновенное перетаскивание
Перетащите любой файл на инструмент и сразу видите вывод Base64. Без ожидания загрузки, без прогресс-баров, без ограничений размера файла со стороны сервера.
📁
Любой формат файла
Кодируйте PDF, ZIP, изображения, шрифты, аудиофайлы, модули WebAssembly или любой другой двоичный формат. Кодировщик обрабатывает все файлы как потоки необработанных байтов — формат не важен.
🔒
Аккаунт не требуется
Используйте инструмент сразу без регистрации, входа или принятия файлов cookie. Выход готов к копированию или скачиванию в виде файла .b64.txt одним кликом.

Варианты использования кодирования файлов Base64

Разработчик фронтенда
Встраивайте маленькие иконки, шрифты или SVG прямо в CSS или HTML как data URI, чтобы избежать дополнительных HTTP-запросов. 2-кБайтная иконка в строке как Base64 экономит сетевую поездку, которая добавила бы 50-200 мс задержки.
Инженер бэкенда
Включайте вложения файлов в JSON API payload, когда протокол передачи не поддерживает multipart загрузки. Кодируйте PDF, отчёты или подписанные документы перед отправкой как строковые поля в REST или GraphQL ответах.
DevOps / Инфраструктура
Сохраняйте двоичные файлы конфигурации (TLS-сертификаты, SSH-ключи, лицензионные файлы) как Base64-строки в переменных окружения, Kubernetes Secrets или Terraform tfvars, где необработанные двоичные значения недопустимы.
QA / Инженер тестирования
Генерируйте Base64-фиксч файлов для автоматизированных тестов, которые проверяют endpoints загрузки, обработку вложений электронной почты или pipelines обработки документов без управления двоичными тестовыми файлами в системе контроля версий.
Data Engineer
Сериализуйте двоичные blobs (метаданные Parquet, схемы Protobuf, маленькие двоичные активы) в Base64 для хранения в JSON-каталогах данных, хранилищах конфигурации или скриптах миграции.
Студент / Учащийся
Наблюдайте, как двоичные файлы превращаются в текст, кодируя маленькие файлы и осматривая вывод. Сравните длину Base64 с размером исходного файла, чтобы проверить 33%-ю дополнительную нагрузку, описанную в RFC 4648.

Дополнительная нагрузка размера файла Base64

Кодирование Base64 увеличивает размер данных ровно на одну треть. Каждые 3 байта входа производят 4 символа выхода (каждый представляет 6 бит). Символы заполнения (=) добавляются, когда длина входа не кратна 3. Таблица ниже показывает отношение между размером исходного файла и размером закодированного выхода.

Размер файлаНеобработанные байтыБайты Base64Дополнительно
1 KB1,024 B1,368 B+33.3%
10 KB10,240 B13,656 B+33.4%
100 KB102,400 B136,536 B+33.3%
1 MB1,048,576 B1,398,104 B+33.3%
5 MB5,242,880 B6,990,508 B+33.3%
10 MB10,485,760 B13,981,016 B+33.3%

Справка по Data URI и типам MIME

Data URI встраивает содержимое файла прямо в HTML, CSS или JavaScript, используя формат data:[тип MIME];base64,[закодированные данные]. Тип MIME указывает браузеру, как интерпретировать декодированные байты. Ниже приведены распространённые расширения файлов, их типы MIME и соответствующий префикс data URI.

РасширениеТип MIMEПрефикс Data URI
.pdfapplication/pdfdata:application/pdf;base64,...
.zipapplication/zipdata:application/zip;base64,...
.pngimage/pngdata:image/png;base64,...
.jpgimage/jpegdata:image/jpeg;base64,...
.gifimage/gifdata:image/gif;base64,...
.svgimage/svg+xmldata:image/svg+xml;base64,...
.woff2font/woff2data:font/woff2;base64,...
.mp3audio/mpegdata:audio/mpeg;base64,...
.wasmapplication/wasmdata:application/wasm;base64,...
.binapplication/octet-streamdata:application/octet-stream;base64,...

Примеры кода

Эти исполняемые примеры показывают, как читать двоичный файл и кодировать его в Base64 на JavaScript, Python, Node.js, bash и Go. Каждый фрагмент производит стандартный Base64 (RFC 4648 раздел 4) с заполнением.

JavaScript (browser)
// Read a file from an <input> element and encode to Base64
const input = document.querySelector('input[type="file"]')
input.addEventListener('change', (e) => {
  const file = e.target.files[0]
  const reader = new FileReader()
  reader.onload = () => {
    const base64 = reader.result.split(',')[1]
    console.log(base64) // → "JVBERi0xLjQK..." (raw Base64, no data URI prefix)
  }
  reader.readAsDataURL(file)
})

// Convert a Blob to Base64 with async/await
async function blobToBase64(blob) {
  const buffer = await blob.arrayBuffer()
  const bytes = new Uint8Array(buffer)
  let binary = ''
  bytes.forEach(b => binary += String.fromCharCode(b))
  return btoa(binary) // → standard Base64 string
}
Python
import base64
from pathlib import Path

# Encode a file to Base64
file_bytes = Path('document.pdf').read_bytes()
encoded = base64.b64encode(file_bytes).decode('ascii')
print(encoded[:40])  # → "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PA..."

# Write encoded output to a text file
Path('document.b64.txt').write_text(encoded)

# Build a data URI from a file
mime_type = 'application/pdf'
data_uri = f'data:{mime_type};base64,{encoded}'
print(data_uri[:60])  # → "data:application/pdf;base64,JVBERi0xLj..."
Node.js
import { readFileSync, writeFileSync } from 'fs'

// Encode a file to Base64
const buffer = readFileSync('archive.zip')
const base64 = buffer.toString('base64')
console.log(base64.length) // → 1398104 (for a ~1 MB file)

// Save Base64 output to a file
writeFileSync('archive.b64.txt', base64)

// Build a data URI
const mime = 'application/zip'
const dataUri = `data:${mime};base64,${base64}`
CLI (bash)
# Encode a file to Base64 (macOS / Linux)
base64 < document.pdf > document.b64.txt

# Encode with no line wrapping (GNU coreutils)
base64 -w 0 < document.pdf > document.b64.txt

# Encode and copy to clipboard (macOS)
base64 < image.png | pbcopy

# Encode with OpenSSL (available everywhere)
openssl base64 -in archive.zip -out archive.b64.txt

# Pipe directly into curl for API upload
base64 -w 0 < photo.jpg | curl -X POST -d @- https://api.example.com/upload
Go
package main

import (
	"encoding/base64"
	"fmt"
	"os"
)

func main() {
	data, err := os.ReadFile("document.pdf")
	if err != nil {
		panic(err)
	}
	encoded := base64.StdEncoding.EncodeToString(data)
	fmt.Println(len(encoded)) // → 1398104 (for a ~1 MB file)

	// Write to file
	os.WriteFile("document.b64.txt", []byte(encoded), 0644)
}

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

Какой максимальный размер файла я могу закодировать в Base64?
Этот инструмент работает полностью в вашем браузере, поэтому лимит зависит от доступной памяти. Современные браузеры легко обрабатывают файлы до 50-100 МБ. Для больших файлов используйте инструмент командной строки, такой как base64 (macOS/Linux), или модуль base64 Python, который обрабатывает файл частями и не загружает весь выход в память сразу.
На сколько больше вывод Base64 по сравнению с исходным файлом?
Вывод Base64 всегда примерно на 33,3% больше входа. Точнее, формула ceil(n / 3) * 4, где n — количество входных байтов. Файл размером 1 МБ производит примерно 1,33 МБ текста Base64. Эта дополнительная нагрузка присуща кодированию и не может быть уменьшена.
Могу ли я закодировать файл в Base64 и использовать его как data URI?
Да. Добавьте префикс типа MIME к Base64-строке: data:application/pdf;base64, за которым следует закодированное содержимое. Браузеры декодируют и отрендерят data URI как обычный файл. Data URI работают в img src, link href, CSS url() и атрибутах download якоря.
Кодирование файлов Base64 — это то же самое, что шифрование?
Нет. Base64 — это кодирование, а не шифрование. Он преобразует двоичные данные в тривиально обратимое текстовое представление — любой с декодировщиком Base64 может восстановить исходный файл. Base64 не обеспечивает конфиденциальность, целостность или аутентификацию. Если вам нужно защитить содержимое файла, сначала зашифруйте файл (например, с помощью AES-256-GCM), а затем закодируйте зашифрованный текст в Base64 для передачи.
Почему моя Base64-строка заканчивается одним или двумя символами =?
Символы = — это заполнение. Base64 обрабатывает вход группами по 3 байта, производя 4 символа выхода на группу. Когда размер файла не кратен 3, добавляются один или два символа заполнения, чтобы длина выхода всегда была кратна 4. Один = означает, что последняя группа имела 2 байта; два == означает, что последняя группа имела 1 байт.
Как закодировать файл в Base64 из командной строки?
На macOS и Linux используйте команду base64: base64 < file.pdf > file.b64.txt. На GNU/Linux добавьте -w 0, чтобы подавить переносы строк. Вы также можете использовать OpenSSL: openssl base64 -in file.pdf -out file.b64.txt. На Windows PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf')).
Когда мне следует использовать кодирование файлов Base64 вместо multipart/form-data?
Используйте Base64, когда транспорт требует текстовый формат — JSON API, XML-RPC, переменные окружения или Kubernetes Secrets. Используйте multipart/form-data при загрузке файлов через HTML-формы или REST endpoints, поддерживающие двоичные потоки. Multipart более эффективен, так как избегает 33%-ной дополнительной нагрузки размера, но требует от сервера анализа multipart границ.