Koder Base64

Koduj tekst lub dane do formatu Base64. Idealne do kodowania danych binarnych do transmisji internetowej.

0 znaków

Czym jest kodowanie Base64?

Base64 to schemat kodowania binarnego na tekst, który reprezentuje dane binarne w formacie ciągu ASCII. Jest powszechnie używany do kodowania danych binarnych w celu transmisji przez media obsługujące wyłącznie tekst, takie jak e-mail lub HTTP.

Powszechne zastosowania kodowania Base64

  • Data URI: Osadzanie obrazów i innych plików bezpośrednio w HTML lub CSS za pomocą data URI.
  • Transmisja API: Wysyłanie danych binarnych przez API JSON obsługujące tylko tekst.
  • Załączniki e-mail: MIME (Multipurpose Internet Mail Extensions) używa Base64 do kodowania załączników e-mail.
  • Uwierzytelnianie podstawowe: Uwierzytelnianie podstawowe HTTP (Basic Authentication) używa Base64 do kodowania danych logowania.
Jak działa kodowanie Base64?

Kodowanie Base64 konwertuje 8-bitowe dane binarne na 6-bitowe znaki przy użyciu zestawu 64 znaków ASCII (A-Z, a-z, 0-9, +, /). Każde 3 bajty danych wejściowych są konwertowane na 4 znaki Base64, co zwiększa rozmiar danych o około 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

Kodowanie Base64 powstało wraz z RFC 2045 (MIME) w 1996 roku jako sposób na kodowanie załączników e-mail. Przed Base64 wysyłanie plików pocztą elektroniczną było problematyczne, ponieważ protokoły poczty elektronicznej były zaprojektowane dla 7-bitowego tekstu ASCII. Dziś Base64 jest zdefiniowany przez RFC 4648 i jest używany daleko poza e-mailem w tworzeniu stron internetowych, interfejsach API i data URI.

Czy kodowanie Base64 jest bezpieczne?

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

Kodowanie Base64 w językach programowania

Większość języków programowania ma wbudowane funkcje do kodowania Base64. Oto przykłady w popularnych językach:

// 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.