Base64 Encoder and Decoder

A free online Base64 encoder and decoder for quick encoding and decoding, with convenient features like UTF-8 support, secure copy, and clear.

Kodowanie (tekst → Base64)

Dekodowanie (Base64 → tekst)

Instrukcje obsługi

Base64 koduje dane binarne jako ASCII, aby ułatwić przesyłanie i przechowywanie. Rozmiar wzrasta o około 33%.
Kodowanie: Konwertuje zwykły tekst na Base64 dla bezpieczniejszego przesyłania.
Dekodowanie: Przywraca oryginalny tekst z ciągu Base64.

Funkcje

  • Bezpieczne dla UTF-8: Poprawnie obsługuje znaki nie-ASCII (używa encodeURIComponent/unescape).
  • Obsługa URL-safe: Jednoklikowa zmiana + / → - _, opcjonalne usunięcie dopełnienia =.
  • Przetwarzanie przed dekodowaniem: Możliwość ignorowania białych znaków, automatycznego przywracania URL-safe i uzupełniania =.
  • Interaktywność: Wejście automatycznie przetwarzane, wyświetlanie długości i statystyk wzrostu.
  • Udogodnienia: Szybkie kopiowanie, wzajemne wypełnianie wyników, dostępność przez klawiaturę, przyjazne dla mobilnych.
  • Spójny styl: Brak klas Tailwind dark:, całkowicie wykorzystuje motyw DaisyUI.

Szybkie przykłady

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

Co to jest Base64

Base64 to sposób kodowania danych binarnych do postaci tekstu ASCII, często używany do przesyłania obrazów lub zawartości plików w protokołach tekstowych, takich jak JSON, XML czy HTTP.

Koduje każdą grupę 3 bajtów jako 4 znaki drukowalne, co zwykle zwiększa rozmiar o około 33%.

Standardowy Base64 używa znaków A–Z, a–z, 0–9, +, / oraz znaku dopełnienia =; wersja bezpieczna dla URL zastępuje + i / przez - i _, aby uniknąć problemów z ucieczką w adresach URL.

Typowe zastosowania

  • Wstrzykiwanie obrazów lub małych plików jako Data URI.
  • Przesyłanie danych binarnych między frontendem a backendem (np. szyfrowane teksty, strumienie skompresowane).
  • Konwersja tekstu na postać drukowalną, aby uniknąć problemów z niezgodnościami kodowania lub niewidocznych znaków.

Często zadawane pytania i uwagi

  • Zestaw znaków: w środowisku sieciowym najpierw przetwórz tekst w UTF-8 (ten narzędzie już to robi automatycznie).
  • Bezpieczny dla URL: dla parametrów lub ścieżek URL zaleca się używanie wersji bezpiecznej dla URL oraz rozważenie usunięcia znaków dopełnienia.
  • Znaki dopełnienia: niektóre implementacje pozwalają pomijać =; podczas dekodowania należy automatycznie uzupełnić do wielokrotności 4.
  • Znaki nowej linii: MIME Base64 może zawierać znaki nowej linii; podczas dekodowania można zaznaczyć „ignoruj białe znaki”.

Jak kodować i dekodować Base64 za pomocą języków programowania

JavaScript
Tekst → Base64 (bezpieczny dla UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// Bezpieczny dla URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Dekodowanie (Base64 → tekst)
// Preprocesing: 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
Kodowanie (tekst → Base64)
$encoded = base64_encode($text);
// Bezpieczny dla URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Dekodowanie (Base64 → tekst)
$b64 = strtr($input, '-_', '+/');
// Automatyczne uzupełnienie '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Kodowanie (tekst → Base64)
import base64

encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Kodowanie bezpieczne dla URL (bez dopełnienia)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Dekodowanie (Base64 → tekst)
import base64

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

enc := base64.StdEncoding.EncodeToString([]byte(text))
// Kodowanie bezpieczne dla URL (bez dopełnienia)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Dekodowanie (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
Kodowanie (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());
Dekodowanie (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
Kodowanie (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));
Dekodowanie (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ład Data URI

Wstrzykiwanie obrazów lub małych plików w formacie Data URI:

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

Uwaga: nie zaleca się używania Data URI dla dużych plików, ponieważ znacznie zwiększa rozmiar HTML/JSON i wpływa na wydajność.