Koder/Dekoder Base64

Darmowy online koder i dekoder Base64 do szybkiego kodowania i dekodowania, oferujący bezpieczną obsługę UTF-8, konwersję bezpieczną dla URL, automatyczne dopełnianie, statystyki w czasie rzeczywistym oraz bezpieczne kopiowanie. Udostępnia przykłady kodu w wielu językach programowania, generowanie Data URI, szczegółowe instrukcje obsługi oraz często zadawane pytania. Przyjazny interfejs z dwukierunkowym uzupełnianiem pól, dostępnością z klawiatury i responsywnym designem. Nie wymaga pobierania, działa bezpośrednio w przeglądarce.

Koduj (Tekst → Base64)

Dekoduj (Base64 → Tekst)

Instrukcja obsługi

Base64 koduje dane binarne na ASCII w celu bezpiecznego przesyłania i przechowywania. Rozmiar danych wzrasta o około 33%.
Koduj: Konwertuj zwykły tekst na Base64 w celu bezpiecznego przesyłania.
Dekoduj: Przywróć oryginalny tekst z ciągu Base64.

Funkcje

  • Bezpieczeństwo UTF-8: Poprawna obsługa znaków spoza zakresu ASCII (z użyciem encodeURIComponent/unescape).
  • Obsługa URL-safe: Jednoklikowe przełączanie między + / → - _, opcjonalne usuwanie znaku wypełnienia =.
  • Przetwarzanie wstępne przed dekodowaniem: Ignorowanie białych znaków, automatyczna konwersja do formatu URL-safe oraz automatyczne dodawanie wypełnienia =.
  • Interakcja w czasie rzeczywistym: Dane wejściowe są przetwarzane natychmiast, z wyświetlaniem statystyk długości i wzrostu rozmiaru.
  • Użyteczność: Szybkie kopiowanie, dwukierunkowe przenoszenie danych między polami wejściowymi, dostępność z klawiatury, przyjazność dla urządzeń mobilnych.
  • Spójny motyw: Brak klas Tailwind dark: — pełne stylizowanie za pomocą motywów DaisyUI.

Szybkie przykłady

Oryginalny tekst:
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

Czym jest Base64?

Base64 to metoda kodowania danych binarnych na tekst ASCII, powszechnie stosowana do przesyłania obrazów lub zawartości plików przez protokoły tekstowe, takie jak JSON, XML i HTTP.

Mapuje każde 3 bajty na 4 drukowalne znaki, co zazwyczaj powoduje wzrost rozmiaru o około 33%.

Standardowy Base64 używa znaków A–Z, a–z, 0–9, +, / oraz znaku wypełnienia =; wariant URL-safe zastępuje + i / znakami - oraz _, aby uniknąć problemów z escapowaniem w adresach URL.

Typowe zastosowania

  • Osadzaj obrazy lub małe pliki jako Data URIs.
  • Przesyłaj dane binarne między klientem a serwerem (np. zaszyfrowane dane, skompresowane strumienie).
  • Konwertuj tekst na format drukowalny, aby uniknąć niespójności kodowania lub niewidocznych znaków.

FAQ i ważne uwagi

  • Zestaw znaków: W środowiskach internetowych najpierw zakoduj tekst jako UTF-8 (to narzędzie wykonuje ten krok automatycznie).
  • URL-safe: Dla parametrów lub ścieżek URL preferuj wariant URL-safe i rozważ usunięcie znaków wypełnienia.
  • Wypełnienie: Niektóre implementacje pozwalają pominąć =; podczas dekodowania automatycznie uzupełnij dane do wielokrotności 4 znaków.
  • Znaki nowej linii: MIME Base64 może zawierać znaki nowej linii; wybierz "Ignoruj białe znaki" podczas dekodowania, aby je obsłużyć.

Jak kodować/dekodować Base64 w językach programowania

JavaScript
Tekst → Base64 (bezpieczne UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// Bezpieczne dla URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Dekoduj (Base64 → Tekst)
// Wstępne przetwarzanie: Zamień -_ na +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
Koduj (Tekst → Base64)
$encoded = base64_encode($text);
// Bezpieczne dla URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Dekoduj (Base64 → Tekst)
$b64 = strtr($input, '-_', '+/');
// Automatyczne dopełnianie znakiem '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Koduj (Tekst → Base64)
import base64

encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Kodowanie bezpieczne dla URL (usuń dopełnienie)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Dekoduj (Base64 → Tekst)
import base64

def b64_decode(s: str) -> str:
    s = s.replace('-','+').replace('_','/')
    s += '=' * (-len(s) % 4)  # Automatyczne dopełnianie znakiem '='
    return base64.b64decode(s).decode('utf-8')
Go
Koduj (Tekst → Base64)
import (
    "encoding/base64"
)

enc := base64.StdEncoding.EncodeToString([]byte(text))
// Kodowanie bezpieczne dla URL (bez dopełnienia)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Dekoduj (Base64 → Tekst)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// Dekodowanie bezpieczne dla URL (bez dopełnienia)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Koduj (Tekst → Base64)
use base64::{engine::general_purpose, Engine as _};

let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Kodowanie bezpieczne dla URL (bez dopełnienia)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Dekoduj (Base64 → Tekst)
use base64::{engine::general_purpose, Engine as _};

let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();

let url_dec = String::from_utf8(
    general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
Zależność Cargo: base64 = "0.22"
Java
Koduj (Tekst → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Kodowanie bezpieczne dla URL (bez dopełnienia)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Dekoduj (Base64 → Tekst)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);

Przykłady Data URI

Osadź obrazy lub małe pliki jako Data URIs:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

Uwaga: Unikaj używania adresów URI danych dla dużych plików, ponieważ znacząco zwiększają one rozmiar HTML/JSON i obniżają wydajność.