Jak używać
- Wybierz u góry narzędzia tryb „Koduj” lub „Dekoduj”.
- Wpisz lub wklej tekst albo kliknij „Otwórz plik”, aby zakodować dowolny plik.
- W razie potrzeby zmień „Wariant” (standardowy lub bezpieczny dla URL), „Dopełnienie”, „Zawijanie wierszy” lub „Kodowanie tekstu”. Wynik aktualizuje się na bieżąco podczas pisania.
- Skopiuj wynik, pobierz go albo kliknij „Zamień wejście z wyjściem”, aby przetworzyć go w przeciwnym kierunku.
Czym jest Base64?
Base64 to kodowanie binarno-tekstowe, które przedstawia dowolny ciąg bajtów za pomocą 64 drukowalnych znaków ASCII: A-Z, a-z, 0-9, + i /, a znak = służy jako dopełnienie. Dzięki temu dane binarne, takie jak obrazy, klucze czy skompresowane pliki, mogą bezpiecznie przechodzić przez systemy zaprojektowane z myślą o tekście, np. pocztę e-mail, JSON, XML, adresy URL i HTML.
Koder odczytuje dane wejściowe po trzy bajty (24 bity) i dzieli je na cztery grupy po 6 bitów. Każda 6-bitowa wartość, od 0 do 63, wskazuje jeden znak alfabetu. Gdy długość danych wejściowych nie jest wielokrotnością trzech, ostatnia grupa zostaje uzupełniona jednym lub dwoma znakami =. W rezultacie wynik w Base64 jest zawsze o około 33% większy od oryginalnych danych.
Base64 to kodowanie, a nie szyfrowanie. Każdy może je zdekodować, dlatego nigdy nie należy używać go do ukrywania haseł ani innych poufnych danych.
Base64 a Base64URL
Standardowy Base64 używa znaków + i /, które mają specjalne znaczenie w adresach URL i nazwach plików. Base64URL, zdefiniowany w sekcji 5 dokumentu RFC 4648, zastępuje je znakami - i _ i zwykle pomija dopełnienie. Korzystają z niego JSON Web Token, OAuth i wszystkie miejsca, w których wartość musi trafić do adresu URL. Dekoder na tej stronie automatycznie akceptuje obie formy.
| Standardowy Base64 | Base64URL | |
|---|---|---|
| Znaki 62 i 63 | + / | - _ |
| Dopełnienie | Wymagane = | Opcjonalne, zwykle pomijane |
| Bezpieczny w URL i nazwach plików | Nie | Tak |
| Typowe zastosowania | E-mail (MIME), data URI, JSON, klucze PEM | JWT, OAuth, parametry URL |
Typowe zastosowania Base64
- Załączniki e-mail. MIME koduje załączniki w Base64 z podziałem na wiersze po 76 znaków. Ten format można odtworzyć za pomocą opcji „Zawijanie wierszy”.
- Osadzanie obrazów i plików. Data URI pozwalają umieszczać małe obrazy, czcionki lub ikony bezpośrednio w HTML i CSS. Zobacz Obraz na Base64 oraz Base64 na obraz.
- API i konfiguracja. JSON nie ma typu binarnego, więc interfejsy API przesyłają pliki, podpisy i klucze jako ciągi Base64. W Base64 przechowują swoje wartości również obiekty Secret w Kubernetes.
- Uwierzytelnianie. Uwierzytelnianie HTTP Basic przesyła
username:passwordw postaci Base64, a JSON Web Token składa się z trzech segmentów Base64URL. - Certyfikaty i klucze. Pliki PEM zawierają zakodowane w Base64 dane DER z podziałem na wiersze po 64 znaki.
Base64 w językach programowania
| Język | Kodowanie | Dekodowanie |
|---|---|---|
| JavaScript (przeglądarka) | btoa(binaryString) | atob(base64) |
| Node.js | Buffer.from(str).toString('base64') | Buffer.from(b64, 'base64').toString() |
| Python | base64.b64encode(data) | base64.b64decode(data) |
| PHP | base64_encode($str) | base64_decode($b64) |
| Java | Base64.getEncoder().encodeToString(bytes) | Base64.getDecoder().decode(b64) |
| C# | Convert.ToBase64String(bytes) | Convert.FromBase64String(b64) |
| Go | base64.StdEncoding.EncodeToString(b) | base64.StdEncoding.DecodeString(s) |
| Powłoka (shell) | base64 file.bin | base64 -d file.txt |
W przeglądarkach funkcja btoa przyjmuje tylko znaki do U+00FF. Aby zakodować tekst Unicode, trzeba najpierw zamienić go na bajty UTF-8, np. za pomocą TextEncoder, albo skorzystać z tego narzędzia, które domyślnie koduje tekst jako UTF-8.
Więcej niż Base64
Base64.is obsługuje też pozostałe kodowania z rodziny Base-N: Base32, Base58, Base62, Base85, Ascii85, basE91, Base45, szesnastkowe (hex) i binarne. Jeśli nie wiadomo, jakiego kodowania używa dany ciąg, warto wypróbować wykrywacz kodowania albo porównać wszystkie kodowania naraz w narzędziu Wszystkie kodowania.
Specyfikacja
| Alfabet | A-Z a-z 0-9 + / |
|---|---|
| Rozmiar wyniku | 4 znaki na 3 bajty (ok. 133%) |
| Dopełnienie | = do wielokrotności 4 znaków |
| Standard | RFC 4648, sekcja 4 |
| Rozróżnia wielkość liter | Tak |
Przykłady
| Wejście (UTF-8) | Wyjście |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Najczęściej zadawane pytania
Czy dane są przesyłane na serwer?
Nie. Kodowanie i dekodowanie odbywa się w całości w przeglądarce za pomocą JavaScriptu. Wprowadzony tekst i pliki nigdy nie opuszczają urządzenia, a po wczytaniu strony narzędzie działa także bez połączenia z internetem.
Dlaczego zdekodowany tekst zawiera dziwne znaki?
Co oznaczają znaki równości na końcu?
To dopełnienie. Base64 działa na blokach po cztery znaki, a znak = uzupełnia ostatni blok, gdy długość danych wejściowych nie jest wielokrotnością trzech bajtów. Jeden znak = oznacza, że ostatni blok koduje dwa bajty, a dwa – że koduje jeden bajt.
O ile zwiększa się rozmiar danych po zakodowaniu?
Base64 zamienia każde 3 bajty na 4 znaki, więc wynik jest o około 33% większy od danych wejściowych, a po włączeniu zawijania wierszy dochodzą jeszcze znaki końca wiersza.
Czy Base64 to forma szyfrowania?
Nie. Base64 zmienia jedynie sposób zapisu danych. Nie używa żadnego klucza i każdy może je zdekodować, dlatego do ochrony poufnych informacji należy stosować prawdziwe szyfrowanie, takie jak AES lub TLS.