Кодировщик Base64

Кодирование текста или данных в формат Base64. Идеально подходит для кодирования двоичных данных для веб-передачи.

0 символов

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

Base64 — это схема кодирования двоичных данных в текст, которая представляет двоичные данные в формате ASCII-строки. Она обычно используется для кодирования двоичных данных для передачи по каналам, которые поддерживают только текст, таким как электронная почта или HTTP.

Основные применения кодирования Base64

  • Data URI: Встраивание изображений и других файлов непосредственно в HTML или CSS с помощью data URI.
  • Передача через API: Отправка двоичных данных через JSON API, которые поддерживают только текст.
  • Вложения электронной почты: MIME (многоцелевые расширения интернет-почты) использует Base64 для кодирования вложений электронной почты.
  • Базовая аутентификация: HTTP-аутентификация Basic использует Base64 для кодирования учётных данных.
Как работает кодирование Base64?

Кодирование Base64 преобразует 8-битные двоичные данные в 6-битные символы, используя набор из 64 ASCII-символов (A-Z, a-z, 0-9, +, /). Каждые 3 байта входных данных преобразуются в 4 символа Base64, что увеличивает размер данных приблизительно на 33%.

  • Step 1 - Group into 3-byte blocks: The input data is divided into groups of 3 bytes (24 bits).
  • Step 2 - Split into 6-bit segments: Each 24-bit block is split into four 6-bit segments.
  • Step 3 - Map to Base64 characters: Each 6-bit value (0-63) is mapped to one of 64 ASCII characters: A-Z (values 0-25), a-z (26-51), 0-9 (52-61), + (62), / (63).
  • Step 4 - Padding: If the input length isn't divisible by 3, padding characters (=) are added to make the output length a multiple of 4.

Example: The string "cat" (ASCII: 99, 97, 116) encodes to "Y2F0". The bytes [99, 97, 116] become binary 01100011 01100001 01110100, which splits into 6-bit groups: 011000 110110 000101 110100, mapping to Y(24) 2(54) F(5) 0(52).

History and Background

Кодирование Base64 возникло с RFC 2045 (MIME) в 1996 году как способ кодирования вложений электронной почты. До Base64 отправка файлов по электронной почте была проблематичной, поскольку протоколы электронной почты были разработаны для 7-битного ASCII-текста. Сегодня Base64 определяется RFC 4648 и используется далеко за пределами электронной почты в веб-разработке, API и data URI.

Является ли кодирование Base64 безопасным?

Base64 is encoding, not encryption. It provides no security and can be easily decoded by anyone. Never use Base64 alone to protect sensitive data. Learn about encoding security

Кодирование Base64 в языках программирования

Большинство языков программирования имеют встроенные функции для кодирования Base64. Вот примеры в популярных языках:

// Basic encoding
$encoded = base64_encode($data);

// Encoding UTF-8 string
$text = "Hello, 世界!";
$encoded = base64_encode($text);

// Encoding file contents
$fileData = file_get_contents('image.png');
$encoded = base64_encode($fileData);
// Browser (btoa for ASCII only)
const encoded = btoa('Hello'); // Basic ASCII

// Browser with UTF-8 support
const encoded = btoa(unescape(encodeURIComponent('Hello, 世界!')));

// Modern browsers with TextEncoder
const encoder = new TextEncoder();
const data = encoder.encode('Hello, 世界!');
const encoded = btoa(String.fromCharCode(...data));
import base64

# Encode string (automatic UTF-8)
text = "Hello, 世界!"
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')

# Encode bytes directly
data = b'\x00\x01\x02\x03'
encoded = base64.b64encode(data).decode('ascii')

# Encode file
with open('image.png', 'rb') as f:
    encoded = base64.b64encode(f.read()).decode('ascii')
import "encoding/base64"

// Basic encoding
data := []byte("Hello, 世界!")
encoded := base64.StdEncoding.EncodeToString(data)

// URL-safe encoding
encoded := base64.URLEncoding.EncodeToString(data)

// Encoding to writer (for large data)
encoder := base64.NewEncoder(base64.StdEncoding, outputWriter)
encoder.Write(data)
encoder.Close()
import java.util.Base64;
import java.nio.charset.StandardCharsets;

// Basic encoding
String text = "Hello, 世界!";
String encoded = Base64.getEncoder()
    .encodeToString(text.getBytes(StandardCharsets.UTF_8));

// URL-safe encoding
String encoded = Base64.getUrlEncoder()
    .encodeToString(text.getBytes(StandardCharsets.UTF_8));

// MIME encoding (line breaks every 76 chars)
String encoded = Base64.getMimeEncoder()
    .encodeToString(text.getBytes(StandardCharsets.UTF_8));
require 'base64'

# Basic encoding
text = "Hello, 世界!"
encoded = Base64.encode64(text)

# Strict encoding (no newlines)
encoded = Base64.strict_encode64(text)

# URL-safe encoding
encoded = Base64.urlsafe_encode64(text)
using System;
using System.Text;

// Basic encoding
string text = "Hello, 世界!";
byte[] bytes = Encoding.UTF8.GetBytes(text);
string encoded = Convert.ToBase64String(bytes);

// With line breaks (for MIME)
string encoded = Convert.ToBase64String(bytes,
    Base64FormattingOptions.InsertLineBreaks);

Related Tools

Need to decode Base64? Use our Base64 Decoder to convert Base64 strings back to original text or binary data.

Working with URLs? Try our URL Encoder to make text URL-safe.

Displaying content on web pages? Use our HTML Entity Encoder to prevent XSS attacks.