logo
GeekFormat

Kodowanie Base64

Tekst Wejściowy
0 znaków

Darmowe online narzędzie do kodowania i dekodowania Base64. Obsługuje zestawy znaków UTF-8/ASCII/ISO-8859-1 z trzema wariantami: Standard, URL-Safe i MIME. Wyświetla współczynnik powiększenia danych w czasie rzeczywistym, łamanie wierszy MIME jest zgodne ze standardem RFC 2045.

Powiązane Rekomendacje

Przypadki użycia

  • Debugowanie JWT: dekoduj segmenty nagłówka i ładunku JWT (format Base64URL), aby wyświetlić zawartość oświadczeń tokenu
  • Basic Auth: koduj nazwę_użytkownika:hasło jako poświadczenia uwierzytelniania HTTP Basic
  • Rozwój OAuth: generuj code_verifier lub weryfikuj code_challenge w scenariuszach PKCE
  • Debugowanie API: koduj dane JSON lub dekoduj pola Base64 zwracane przez API
  • Osadzanie obrazów Data URI: przekształcaj małe ikony na format data:image/...;base64,... do osadzania w CSS/HTML
  • Kodowanie załączników e-mail: koduj binarne załączniki e-mail w formacie MIME Base64

Funkcje

  • Przełączanie Encode/Decode jednym kliknięciem: swobodne przełączanie między trybami kodowania i dekodowania, wyjście staje się bezpośrednio wejściem dla obsługi cyklicznej
  • Obsługa trzech zestawów znaków: UTF-8 (chiński/japoński/emoji), ASCII, ISO-8859-1, profesjonalne pokrycie wielu scenariuszy
  • Trzy warianty wyjścia: Standard (standardowy), URL-Safe (bezpieczny dla JWT/OAuth/PKCE), MIME (standard RFC 2045 z podziałem wierszy na 76 znaków)
  • Statystyki objętości w czasie rzeczywistym: wyświetla liczbę znaków wejścia/wyjścia i współczynnik powiększenia w czasie rzeczywistym (Base64 zwiększa objętość o około 33%)
  • Jasne komunikaty o błędach: gdy znaki są poza zakresem, wyświetlane są konkretne komunikaty o błędach zamiast prostego błędu
  • Przeciągalny separator: na komputerze można regulować proporcje lewego i prawego obszaru edycji, aby skupić się na bieżącym zadaniu
  • Niezależne karty dla urządzeń mobilnych: użytkownicy telefonów/tabletów przełączają się niezależnie między obszarem wejścia i wyjścia dla płynnego doświadczenia

Jak Używać

  1. Wybierz tryb: kliknij Encode (koduj) lub Decode (dekoduj), aby zmienić kierunek przetwarzania
  2. Wybierz wariant: Standard (standardowy), URL-Safe (JWT/OAuth), MIME (format pocztowy z podziałem wierszy na 76 znaków)
  3. Wprowadź zawartość: wklej tekst lub ciąg Base64, zostanie on automatycznie przetworzony w czasie rzeczywistym
  4. Wyświetl statystyki: na dole wyświetlana jest liczba znaków i współczynnik powiększenia objętości (kodowanie zwiększa objętość o około 33%)
  5. Skopiuj wynik: skopiuj ciąg Base64 lub zdekodowany tekst jednym kliknięciem

Często Zadawane Pytania

Czy kodowanie Base64 to to samo co szyfrowanie?

Nie. Base64 tylko przekształca tekst w inną odwracalną formę reprezentacji; każdy może go zdekodować z powrotem na oryginalny tekst. Jeśli chodzi o dane wrażliwe (hasła, tokeny), użyj prawdziwego schematu szyfrowania, takiego jak AES. Base64 nadaje się tylko do transformacji formatu danych, ułatwiając przesyłanie danych binarnych przez systemy tekstowe.

Narzędzie szyfrowania AES

Jak bardzo powiększają się dane po zakodowaniu Base64?

Kodowanie Base64 zwiększa objętość oryginalnych danych o około 33%. Wynika to z faktu, że co 3 bajty (24 bity) są kodowane na 4 znaki Base64. Na przykład tekst o rozmiarze 100 bajtów po zakodowaniu będzie miał około 133 bajtów. Współczynnik powiększenia jest wyświetlany w czasie rzeczywistym na dole narzędzia, aby można było oszacować rozmiar danych. Przykład: `Hello` → `SGVsbG8=` (objętość +33%).

Narzędzie statystyk Base64

Jaka jest różnica między trzema wariantami: Standard, URL-Safe i MIME?

Standard to standardowy Base64, który używa znaków A-Z, a-z, 0-9, +, /. URL-Safe zamienia +/ na -_, co czyni go odpowiednim dla parametrów URL i tokenów JWT. MIME wstawia podziały wierszy co 76 znaków, jest zgodny ze standardem pocztowym RFC 2045, odpowiedni dla załączników e-mail i wielowierszowego tekstu.

URL-Safe Base64MIME Base64

Jak zdekodować nagłówek lub ładunek JWT?

JWT używa kodowania Base64URL (wariant URL-Safe). Po wybraniu trybu URL-Safe po prostu wklej pierwszy segment (nagłówek) lub drugi segment (ładunek) JWT, aby go zdekodować. Uwaga: trzeci segment JWT to podpis i nie powinien być tutaj dekodowany ani weryfikowany.

Narzędzie JWT

Co to jest Padding (dopełnienie) w Base64?

Długość wyniku kodowania Base64 musi być wielokrotnością 4. Gdy długość wejścia nie jest wielokrotnością 3, koniec jest dopełniany znakiem =. Wariant URL-Safe nie używa paddingu. Narzędzie automatycznie obsługuje padding i automatycznie usuwa znaki = podczas dekodowania.

Narzędzie Padding Base64

Dlaczego btoa i atob w JavaScript nie obsługują języka chińskiego?

btoa i atob to natywne API przeglądarki, które działają z zestawem znaków Latin-1 (ISO-8859-1), gdzie każdy znak zajmuje 1 bajt. Chińskie znaki zajmują 3 bajty w UTF-8, więc bezpośrednie wprowadzenie spowoduje błąd. Rozwiązaniem jest najpierw użycie encodeURIComponent do przekształcenia chińskiego na wzór sekwencji bajtów %xx UTF-8, następnie użycie unescape do przekształcenia na ciąg Latin-1 i na koniec użycie btoa do kodowania.

Co to jest Data URI Scheme? Jak osadzać obrazy za pomocą Base64?

Data URI to format URI, który umożliwia osadzanie małych plików bezpośrednio w adresie URL, składnia: `data:[<mediatype>][;base64],<data>`. Na przykład: `data:image/png;base64,iVBORw0KGgo...`. Często używany do osadzania małych ikon, obrazów tła CSS itp. w celu zmniejszenia liczby żądań HTTP. Ale Base64 zwiększa objętość o 33%, więc nadaje się tylko dla małych plików; duże pliki powinny używać zwykłych adresów URL.

Narzędzie Data URIBase64 na obraz

Co to jest kodowanie Base64?

Base64 to schemat kodowania danych binarnych na tekst, oparty na 64 drukowalnych znakach ASCII, po raz pierwszy zdefiniowany przez RFC 2045 (standard MIME). Base64 przekształca co 3 bajty (24 bity) na 4 znaki Base64 (A-Z, a-z, 0-9, +, /), umożliwiając bezpieczne przesyłanie danych binarnych przez systemy obsługujące tylko tekst, takie jak nagłówki HTTP, ładunki JSON, dokumenty XML lub parametry zapytania URL.

**Base64 to nie szyfrowanie**, zapewnia tylko transformację formatu danych, każdy może go łatwo zdekodować. Jeśli chcesz chronić dane wrażliwe, użyj prawdziwego schematu szyfrowania, takiego jak AES. Typowe zastosowania Base64 obejmują: HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), segmenty nagłówka i ładunku tokenów JWT (format Base64URL), Data URI (`data:image/png;base64,...`), kodowanie MIME załączników e-mail itp.

**URL-Safe Base64** (RFC 4648 §5) zamienia +/ standardowego Base64 na -_ i zazwyczaj pomija padding =. Dzięki temu wynik kodowania może bezpiecznie występować w adresach URL, ścieżkach plików lub polach JSON. Tokeny JWT, code_verifier OAuth PKCE i AWS Signature V4 używają kodowania URL-Safe Base64.

**Łamanie wierszy MIME** to standard RFC 2045, który określa, że każdy wiersz nie powinien przekraczać 76 znaków. Gdy zawartość Base64 jest używana w poczcie e-mail lub w niektórych scenariuszach wymagających łamania wierszy do wyświetlania, wariant MIME automatycznie wstawia znaki podziału wiersza (`\n`) co 76 znaków. Jest to standardowy format transmisji załączników e-mail.

Narzędzie wykorzystuje natywne **API btoa/atob** przeglądarki w połączeniu z bezpieczną logiką przetwarzania UTF-8, zapewniając poprawne kodowanie wielobajtowych znaków, takich jak chiński, japoński i emoji. Wszystkie obliczenia są wykonywane lokalnie, dane nie są wysyłane na żadne serwery. Otwórz panel sieci w narzędziach developerskich przeglądarki, aby sprawdzić, że nie ma żadnych zewnętrznych żądań podczas całego procesu.

术语表

RFC 4648
Oficjalny standard kodowania Base16/Base32/Base64, opublikowany przez IETF. Definiuje dwa alfabety: standardowy Base64 i URL-Safe Base64, a także zasady dotyczące paddingu, łamania wierszy, obsługi niealfabetycznych znaków itp. Jest de facto obowiązującym standardem kodowania Base64, zastępując wcześniejszy RFC 3548.Narzędzie URL-Safe Base64Narzędzie Padding Base64
RFC 2045 (MIME)
Standard rozszerzeń poczty internetowej (MIME). Po raz pierwszy zastosował Base64 jako metodę kodowania do transmisji treści pocztowej. Określa, że kodowanie Base64 nie powinno przekraczać 76 znaków w wierszu i jest oddzielane przez CRLF, znany jako wariant MIME Base64.Narzędzie MIME Base64
Base64URL (URL-Safe Base64)
Wariant bezpieczny dla URL, zdefiniowany w RFC 4648 §5. Zamienia + standardowego Base64 na - i / na _, i zazwyczaj pomija znak paddingu =. Szeroko stosowany w scenariuszach takich jak tokeny JWT, OAuth PKCE, parametry URL i nazwy plików.Narzędzie URL-Safe Base64Narzędzie JWT
MIME Base64
Wariant Base64 zgodny ze standardem RFC 2045, wstawiający znak podziału wiersza (CRLF) co 76 znaków. Głównie używany do transmisji załączników e-mail, ponieważ wczesne protokoły SMTP miały ograniczenia dotyczące długości pojedynczego wiersza.Narzędzie MIME Base64
Padding (dopełnienie)
Długość wyniku kodowania Base64 musi być wielokrotnością 4. Gdy liczba bajtów wejściowych nie jest wielokrotnością 3, koniec jest dopełniany znakiem =. Standardowy Base64 używa paddingu, Base64URL zazwyczaj go pomija.Narzędzie Padding Base64
Alfabet Base64
Zestaw 64 znaków używanych w kodowaniu Base64. Standardowy alfabet Base64: A-Z (26), a-z (26), 0-9 (10), +, /, łącznie 64 znaki, plus znak dopełnienia =.
btoa / atob
Natywne API przeglądarki do kodowania/dekodowania Base64. btoa (binary to ASCII) służy do kodowania, atob (ASCII to binary) do dekodowania. Uwaga: te API obsługują tylko zestaw znaków Latin-1. Do obsługi języka chińskiego należy je łączyć z przekodowaniem UTF-8.
Data URI Scheme
Format URI, który umożliwia osadzanie małych plików bezpośrednio w adresie URL, format: data:[<mediatype>][;base64],<data>. Często używany do osadzania małych ikon i obrazów tła CSS w celu zmniejszenia żądań HTTP.Narzędzie Data URIBase64 na obraz
HTTP Basic Authentication
Metoda uwierzytelniania w protokole HTTP. Nazwa użytkownika i hasło są łączone dwukropkiem, kodowane w Base64 i wysyłane w nagłówku Authorization żądania. Format: Authorization: Basic <base64(nazwa_użytkownika:hasło)>.Konstruktor nagłówków Auth
Współczynnik powiększenia Base64
Proporcja, o jaką zwiększa się objętość danych po zakodowaniu Base64. Co 3 bajty (24 bity) są kodowane na 4 znaki Base64, więc objętość zwiększa się o około 33% (4/3 ≈ 1,333). Z paddingiem współczynnik powiększenia jest nieco wyższy.

Porównanie trzech wariantów Base64

CechaStandardURL-SafeMIME
Znaki specjalne+ /- _+ /
Padding(=)UżywaneZazwyczaj pomijaneUżywane
Łamanie wierszyBrakBrakWiersz co 76 znaków
StandardRFC 4648 §4RFC 4648 §5RFC 2045
Typowe scenariuszeData URI, ogólne kodowanieJWT, parametry URL, nazwy plikówZałączniki e-mail, transmisja SMTP

Tabela porównawcza kodowań serii Base

KodowanieLiczba znakówCechy zestawu znakówPowiększenie danychTypowe zastosowanie
Base16 (Hex)160-9, A-F100%Debugowanie, wyświetlanie skrótów
Base3232A-Z, 2-7(wielkie litery bez niejasności)60%DNS, klucze TOTP, kody QR
Base5858Wyklucza łatwe do pomylenia znaki 0/O/I/l38%Adresy Bitcoin, kryptowaluty
Base6262A-Z, a-z, 0-934%Skróty URL, kodowanie identyfikatorów
Base6464A-Z, a-z, 0-9, +, /33%Data URI, MIME, JWT(wariant URL-Safe)

Code Examples

Kodowanie Base64 w JavaScript (obsługuje chiński UTF-8)

// 编码(支持 UTF-8 中文)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// 解码(支持 UTF-8 中文)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// URL-Safe 编码(用于 JWT / OAuth)
function b64UrlEncode(str) {
  return btoa(unescape(encodeURIComponent(str)))
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=+$/, '');
}

console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界

Kodowanie Base64 w Python

import base64

# Standard 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode())  # SGVsbG8g5LiW55WM

# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode())  # SGVsbG8g5LiW55WM(无 padding 需手动去除)

# 去除 padding(JWT 标准做法)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)

Kodowanie Base64 w Java

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Example {
    public static void main(String[] args) {
        String text = "Hello 世界";

        // Standard 编码
        String encoded = Base64.getEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded); // SGVsbG8g5LiW55WM

        // Standard 解码
        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded); // Hello 世界

        // URL-Safe 编码(用于 JWT / URL)
        String urlSafe = Base64.getUrlEncoder().withoutPadding()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(urlSafe);

        // MIME 编码(76字符换行)
        String mime = Base64.getMimeEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }
}

Authoritative References