Koder/Dekoder Base64

Nasz koder-dekoder Base64 przekształca tekst w kodowanie Base64 i z powrotem w czasie rzeczywistym. Wklej dowolny tekst, aby uzyskać wersję zakodowaną w Base64, lub wklej ciąg Base64, aby przekształcić go z powrotem w czytelny tekst. Obsługuje standard Base64 (RFC 4648) oraz wariant bezpieczny dla URL. Obsługuje znaki UTF-8, ciągi JSON oraz duże pliki tekstowe. Całe przetwarzanie odbywa się po stronie klienta – Twoje dane nigdy nie opuszczają przeglądarki.

star 4.9
auto_awesome AI
New

Koder Base64 calculator

0 characters
0 characters

lightbulb Tips

  • •Base64 output is always ~33% larger than input
  • •URL-safe Base64 uses - and _ instead of + and /
  • •Base64 is encoding, NOT encryption
  • •3 input bytes = 4 Base64 characters

How to Use the Koder Base64

swap_horiz

Wybierz tryb

Wybierz opcję Zakoduj, aby przekształcić tekst na Base64, lub Odkoduj, aby przekształcić Base64 z powrotem na tekst.

text_fields

Wprowadź dane wejściowe

Wpisz lub wklej swój tekst (do zakodowania) lub ciąg Base64 (do odkodowania).

content_copy

Uzyskaj wynik

Wynik pojawi się natychmiast. Kliknij Kopiuj, aby skopiować go do schowka.

link

Opcja bezpieczna dla URL

Włącz tryb bezpieczny dla URL, aby używać znaków - i _ zamiast + i / w celu uzyskania danych wyjściowych zgodnych z adresami URL.

The Formula

Kodowanie Base64 przekształca dane binarne na tekst ASCII, dzieląc bajty wejściowe na 6-bitowe grupy i mapując każdą z nich na jeden z 64 znaków (A-Z, a-z, 0-9, +, /). Ponieważ 3 bajty (24 bity) odpowiadają 4 znakom Base64, wynik jest o około 33% większy od danych wejściowych. Jeśli długość danych wejściowych nie jest wielokrotnością 3, dodawane jest dopełnienie (=).

Base64 = encode(input bytes) → 6-bit groups → A-Za-z0-9+/ alphabet

lightbulb Variables Explained

  • input bytes Bajty tekstu wejściowego zakodowane w UTF-8
  • 6-bit groups Dane wejściowe podzielone na 6-bitowe fragmenty (zamiast 8-bitowych bajtów)
  • A-Za-z0-9+/ 64 znaki ASCII używane w alfabecie kodowania
  • = (padding) Znak dopełnienia dodawany w celu uzyskania długości wyjściowej będącej wielokrotnością 4

tips_and_updates Pro Tips

1

Wynik Base64 jest zawsze o około 33% większy niż dane wejściowe

2

Wariant Base64 bezpieczny dla URL zastępuje znak + znakiem - oraz / znakiem _ (przydatne w adresach URL i nazwach plików)

3

Base64 to kodowanie, a NIE szyfrowanie – każdy może je odkodować, dlatego nigdy nie używaj go do celów bezpieczeństwa

4

Użyj Base64, aby osadzić małe obrazy w kodzie HTML/CSS za pomocą odnośników typu data URI

5

JSON Web Tokens (JWT) używają kodowania Base64 bezpiecznego dla adresów URL w nagłówku i ładunku (payload)

6

Wypełnienie = na końcu może zostać bezpiecznie usunięte w formacie Base64 bezpiecznym dla URL

7

Base64 obsługuje dane binarne – w ten sposób przesyłane są załączniki wiadomości e-mail

Nasz darmowy koder i dekoder Base64 błyskawicznie zamienia tekst na Base64 i z powrotem. Obsługuje standardowe oraz bezpieczne dla URL kodowanie Base64, znaki UTF-8 i długie teksty. Całe przetwarzanie odbywa się w Twojej przeglądarce — Twoje dane pozostają prywatne.

Koder Base64 - Tekst na Base64

Błyskawicznie zamień dowolny tekst na kodowanie Base64. Nasz koder obsługuje znaki UTF-8, ciągi JSON, kod HTML oraz dowolne dane tekstowe.

Skopiuj wynik Base64 do wykorzystania w:

  • API
  • identyfikatorach URI danych (data URI)
  • kodowaniu wiadomości e-mail
  • plikach konfiguracyjnych

Dekoder Base64 - Base64 na tekst

Zdekoduj dowolny ciąg Base64 z powrotem do czytelnego tekstu. Wklej zakodowaną zawartość Base64, aby natychmiast zobaczyć oryginalny tekst.

Obsługuje:

  • standardowe Base64
  • bezpieczne dla URL Base64
  • Base64 z dopełnieniem lub bez

Jak działa kodowanie Base64?

Kodowanie Base64 polega na konwersji danych binarnych na zestaw 64 drukowalnych znaków ASCII, zgodnie ze specyfikacją RFC 4648 wydaną przez IETF.

Algorytm pobiera bajty wejściowe i przegrupowuje je z 8-bitowych bajtów na 6-bitowe fragmenty, ponieważ 2 do potęgi 6 daje dokładnie 64 możliwe wartości. Każda 6-bitowa grupa jest mapowana na jeden znak z alfabetu A-Z, a-z, 0-9, plus oraz ukośnik.

Ponieważ każde 3 bajty wejściowe (24 bity) stają się 4 znakami wyjściowymi, zakodowany tekst jest o około 33 procent większy od oryginału. Gdy długość danych wejściowych nie jest wielokrotnością 3, zgodnie ze specyfikacją RFC 4648 dodawany jest jeden lub dwa znaki równości jako dopełnienie.

Czy Base64 to szyfrowanie czy kodowanie?

Base64 to kodowanie, a nie szyfrowanie, i nie zapewnia żadnego bezpieczeństwa ani poufności. Każdy może błyskawicznie zdekodować ciąg Base64, ponieważ nie jest wymagany żaden klucz tajny, a odwracalne mapowanie jest publicznie udokumentowane w RFC 4648.

OWASP wyraźnie ostrzega, że Base64 nie zastępuje kryptografii i nigdy nie powinno być używane do ochrony haseł, tokenów ani danych osobowych. Jego jedynym celem jest bezpieczny transport danych binarnych przez kanały obsługujące tylko tekst, takie jak e-mail, adresy URL i JSON.

Aby zapewnić rzeczywistą poufność, stosuj standardowe szyfrowanie, takie jak AES-256 zalecane przez NIST, a dla integralności używaj funkcji skrótu, takich jak SHA-256. Traktuj każdy ciąg Base64 w swoich logach jako w pełni czytelny tekst jawny.

Czym jest bezpieczne dla URL kodowanie Base64?

Bezpieczne dla URL Base64 to wariant zdefiniowany w sekcji 5 specyfikacji RFC 4648, który zastępuje znak plusa myślnikiem, a znak ukośnika podkreślnikiem.

Ta zamiana jest istotna, ponieważ plus i ukośnik mają zarezerwowane znaczenia w adresach URL i ścieżkach plików, gdzie mogą być błędnie interpretowane lub wymagać kodowania procentowego (percent-encoding). Alfabet bezpieczny dla URL pozwala na przesyłanie zakodowanych wartości w ciągach zapytań, segmentach ścieżek i nazwach plików bez ryzyka uszkodzenia danych.

Znaki dopełnienia (znaki równości) są często pomijane w tym kontekście, ponieważ dekoder może wywnioskować oryginalną długość. Tokeny JWT (JSON Web Tokens), opisane w RFC 7519, opierają się na tym kodowaniu base64url w swoich segmentach nagłówka i ładunku, dlatego ciągi JWT nigdy nie zawierają znaków plusa ani ukośnika.

Dlaczego Base64 zwiększa rozmiar pliku o 33 procent?

Base64 zwiększa rozmiar danych o około 33 procent, ponieważ reprezentuje każde 3 bajty danych wejściowych za pomocą 4 znaków wyjściowych.

Trzy bajty zawierają 24 bity, a Base64 dzieli te 24 bity na cztery grupy 6-bitowe, więc stosunek 4 znaków do 3 dodaje jedną trzecią do długości, zgodnie ze specyfikacją RFC 4648. Wypełnienie (padding) dodaje do dwóch kolejnych znaków w ostatnim bloku.

Ta nadmiarowość to celowy kompromis na rzecz kompatybilności z kodem ASCII: dane binarne, które zepsułyby pocztę e-mail lub JSON, stają się w pełni bezpieczne jako tekst. Zgodnie z MDN Web Docs, właśnie dlatego osadzanie obrazów jako identyfikatorów danych Base64 sprawia, że pliki HTML i CSS stają się zauważalnie większe niż w przypadku bezpośredniego linkowania oryginalnego pliku binarnego.

Jak kodować pliki i obrazy do Base64

Aby zakodować plik lub obraz do Base64, surowe bajty są odczytywane i przesyłane przez standardowy algorytm RFC 4648, co daje łańcuch tekstowy, który można osadzić bezpośrednio w kodzie.

Częstym zastosowaniem jest schemat identyfikatora danych (data URI) udokumentowany przez MDN Web Docs, w którym obraz staje się samowystarczalną wartością src, taką jak data:image/png;base64, po której następuje ciąg zakodowanych bajtów. Eliminuje to osobne żądanie HTTP, co może przyspieszyć ładowanie małych ikon.

Ponieważ jednak Base64 dodaje 33 procent do rozmiaru i nie może być buforowany (cache'owany) osobno, najlepiej rezerwować go dla bardzo małych zasobów. Większe obrazy, czcionki i pliki PDF są zazwyczaj obsługiwane jako zwykłe pliki binarne, a nie jako wklejony kod Base64.

Jak Base64 obsługuje znaki UTF-8 i Unicode?

Base64 obsługuje Unicode poprzez najpierw konwersję tekstu na bajty UTF-8, a następnie zakodowanie tych bajtów przy użyciu standardowego alfabetu Base64. Sam Base64 operuje tylko na surowych bajtach, więc krok kodowania znaków odbywa się przed kodowaniem i po dekodowaniu.

UTF-8, zdefiniowany w RFC 3629 i utrzymywany w ramach standardu Unicode przez Konsorcjum Unicode, reprezentuje emoji, ideogramy CJK i litery z akcentami jako sekwencje wielobajtowe, które Base64 następnie dokładnie zachowuje. Ten dwuetapowy proces sprawia, że nasze narzędzie poprawnie przetwarza w obie strony znaki takie jak symbol euro lub emoji.

W języku JavaScript, jak zauważają MDN Web Docs, przestarzała funkcja btoa akceptuje tylko kodowanie Latin-1, więc nowoczesny kod koduje dane do bajtów UTF-8 za pomocą TextEncoder przed wywołaniem btoa.

Do czego Base64 jest używany w rzeczywistych aplikacjach?

Base64 jest używany wszędzie tam, gdzie dane binarne muszą przemieszczać się przez systemy obsługujące wyłącznie tekst.

  • Załączniki e-mail są kodowane w Base64 zgodnie ze standardem MIME zdefiniowanym w RFC 2045, dzięki czemu obrazy i dokumenty przetrwają transport pocztą w czystym tekście.
  • Strony internetowe osadzają małe obrazy i czcionki jako identyfikatory danych Base64, zgodnie z dokumentacją MDN Web Docs.
  • Tokeny JSON Web Tokens (zgodnie z RFC 7519) kodują swoje oświadczenia jako ciągi base64url, a HTTP Basic Authentication, opisane w RFC 7617, koduje za pomocą Base64 parę nazwy użytkownika i hasła rozdzielonych dwukropkiem.
  • Base64 pojawia się również w ładunkach (payloads) API, certyfikatach TLS w formacie PEM oraz plikach konfiguracyjnych.

W każdym przypadku celem jest bezpieczny, bezstratny transport, a nie kompresja czy bezpieczeństwo.

Typowe błędy kodowania i dekodowania Base64

Najczęstszym błędem dotyczącym Base64 jest traktowanie go jako środka bezpieczeństwa, podczas gdy RFC 4648 definiuje w pełni odwracalną transformację bez klucza, którą każdy może odszyfrować.

  • Innym częstym błędem jest mieszanie standardowych alfabetów z tymi bezpiecznymi dla adresów URL, co powoduje błędy dekodowania, gdy znaki plus lub ukośnik są zamieniane na myślnik i podkreślenie.
  • Brakujące lub niepoprawne wypełnienie znakiem równości również psuje ścisłe dekodery, chociaż wiele z nich, w tym implementacje z MDN Web Docs, toleruje brak wypełnienia.
  • Programiści często zapominają o kroku UTF-8, co skutkuje zniekształconym tekstem w przypadku danych wejściowych innych niż ASCII.
  • W końcu, przypadkowe ponowne zakodowanie danych, które już są w Base64, podwaja narzut.

Zweryfikowanie dokładnego wariantu, reguł wypełnienia i zestawu znaków ze specyfikacją RFC 4648 zapobiega niemal wszystkim takim błędom dekodowania.

Base64 vs Base32 vs kodowanie szesnastkowe

Base64, Base32 i kodowanie szesnastkowe (hex) to metody kodowania danych binarnych na tekst, zdefiniowane wspólnie w RFC 4648, ale różnią się one stosunkiem gęstości danych do czytelności.

  • Kodowanie szesnastkowe używa 16 znaków i podwaja rozmiar danych, dzięki czemu jest najbardziej czytelne dla człowieka i popularne w skrótach kryptograficznych (hashach) oraz kodach kolorów.
  • Base32 używa 32 wielko-nieczułych znaków (case-insensitive), zwiększa rozmiar danych o około 60 procent i unika niejednoznacznych symboli, co sprawdza się w systemach nierozróżniających wielkości liter oraz w sekretach TOTP.
  • Base64 jest najbardziej kompaktowy z całej trójki z narzutem wynoszącym około 33 procent, wykorzystując 64 znaki.

Wybierz kodowanie szesnastkowe do debugowania i krótkich identyfikatorów, Base32, gdy wielkość liter stanowi problem, oraz Base64, gdy najważniejsza jest kompaktowość, co jasno wynika z wytycznych IETF w RFC 4648.

Frequently Asked Questions

sell

Tags