Przejdź do treści

Base64 enkoder i dekoder

Wklej tekst albo wybierz plik, a od razu zobaczysz jego postać w Base64. Działa to też w drugą stronę: z Base64 odzyskasz tekst, obraz czy inny plik.

Tekst ani pliki nie są nigdzie wysyłane, wszystko dzieje się w Twojej przeglądarce.

Jak korzystać z narzędzia

Jak zakodować i odkodować Base64

  1. 1 U góry wybierz, czy pracujesz z tekstem, czy z plikiem. Tekst możesz zarówno zakodować, jak i odkodować. Plik, na przykład obraz czy PDF, zakodujesz do Base64 albo od razu do data URI.
  2. 2 Przy tekście wybierz Zakoduj albo Odkoduj i wklej tekst. Wynik pojawia się na bieżąco, już podczas pisania.
  3. 3 Skopiuj wynik przyciskiem Kopiuj. Przyciskiem Zamień przeniesiesz go do pola wejściowego i odwrócisz kierunek, na przykład żeby sprawdzić wynik.

Co narzędzie zrobi za Ciebie

  • przy odkodowywaniu rozpozna zwykły Base64 i base64url oraz dopisze brakujące znaki = na końcu
  • odczyta całe data URI razem z typem pliku i zignoruje spacje oraz podziały wierszy
  • rozpozna obraz, PDF czy archiwum, przy obrazie pokaże podgląd i zaproponuje pobranie
  • tekst, który nie jest w UTF-8, spróbuje odczytać w starszym kodowaniu Windows-1250 i Cię o tym uprzedzi
  • przy kodowaniu tekstu pokaże pod wynikiem także wersję base64url dla adresów URL i JWT
  • wszystko przetwarza bezpośrednio w Twojej przeglądarce, nic nie jest wysyłane na serwer

Jak zamienić obraz na Base64 i z powrotem

Base64 najczęściej stosuje się przy obrazach. Mały obraz zakodujesz i wstawisz bezpośrednio do HTML albo CSS, bez osobnego pliku. A gdy dostaniesz obraz jako ciąg Base64, na przykład z API, zamienisz go tutaj z powrotem na plik i zapiszesz.

Z obrazu na Base64

  1. 1 U góry narzędzia przełącz na Plik i wybierz obraz PNG, JPG, GIF, WebP albo SVG.
  2. 2 Wybierz format Data URI, jeśli chcesz wstawić go do HTML albo CSS, albo Base64 dla API i JSON.
  3. 3 Skopiuj wynik i wklej go do atrybutu src, do właściwości CSS background albo do swojego kodu.

Z Base64 na obraz albo PDF

  1. 1 Przełącz na Tekst i wybierz Odkoduj.
  2. 2 Wklej ciąg Base64 albo całe data URI. Narzędzie po zawartości rozpozna, czy to PNG, JPEG, GIF, WebP czy PDF.
  3. 3 Przy obrazie zobaczysz podgląd. Przyciskiem Pobierz plik zapiszesz go z właściwym rozszerzeniem.

Jak odczytać token JWT

Token JWT wygląda jak jeden długi ciąg, ale składa się z trzech części oddzielonych kropką. Dwie pierwsze to zwykły JSON zakodowany w base64url, więc odczytasz je nawet bez klucza. Każdą część wklej do narzędzia osobno:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJuYW1lIjoiSmFuYSIsImV4cCI6MTc2NzIyNTYwMH0.podpis

Nagłówek
{"alg":"HS256","typ":"JWT"}

algorytm podpisu i typ tokenu

Dane
{"sub":"123","name":"Jana","exp":1767225600}

identyfikator użytkownika, imię i czas wygaśnięcia

Podpis
podpis

binarny podpis, który weryfikuje serwer, to nie jest tekst

Wartość exp to czas wygaśnięcia w sekundach od 1 stycznia 1970, tutaj dokładnie północ 1 stycznia 2026 UTC. Dane w tokenie odczyta każdy, kto ma token, dlatego nigdy nie umieszczaj w nich haseł ani innych poufnych informacji.

Jak wyciągnąć załącznik ze źródła e-maila

W źródle wiadomości każdy załącznik jest zapisany jako długi blok Base64 za nagłówkiem Content-Transfer-Encoding: base64. Źródło otworzysz w Gmailu przez Pokaż oryginał, a w Outlooku przez Wyświetl źródło wiadomości. Skopiuj blok bez nagłówków, wklej go tutaj, wybierz Odkoduj i pobierz plik. To pomaga, gdy załącznika nie da się otworzyć w programie pocztowym albo program go zablokował.

Losowy klucz w Base64

Tajne klucze do API, szyfrowania czy podpisów często zapisuje się jako losowe bajty w Base64. Laravel na przykład przechowuje klucz aplikacji jako APP_KEY=base64: i 32 losowe bajty. Klucz wygenerujesz także tutaj, kryptograficznie bezpiecznym generatorem bezpośrednio w Twojej przeglądarce.

Base64
base64url

W terminalu to samo zrobi polecenie openssl rand -base64 32. Wygenerowany klucz nie jest nigdzie wysyłany ani zapisywany.

Wszystko o Base64

Czym jest Base64 i do czego służy

Base64 to sposób na zapisanie dowolnych danych, także obrazu czy PDF, za pomocą zaledwie 64 zwykłych znaków: wielkich i małych liter, cyfr oraz znaków + i /. Tak zapisane dane można przesłać wszędzie tam, gdzie dozwolony jest tylko tekst, na przykład w załącznikach e-maili, w odpowiedziach API w formacie JSON, w HTML czy CSS. Z każdych trzech bajtów powstają cztery znaki, dlatego wynik jest mniej więcej o jedną trzecią dłuższy od oryginalnych danych.

znaki w alfabecie Base64
64
z trzech bajtów powstają cztery znaki
3 → 4
o tyle dłuższy jest wynik
+33%
standard, który definiuje Base64
RFC 4648

Przykłady

Tak wyglądają typowe teksty przed zakodowaniem i po nim:

WejścieBase64
Krótki tekst Cześć Q3plxZvEhw==
Tekst z polskimi znakami Dzień dobry RHppZcWEIGRvYnJ5
Logowanie HTTP Basic login:haslo bG9naW46aGFzbG8=

Jak działa Base64 krok po kroku

  1. 1 Tekst najpierw zamienia się na bajty. Litery bez polskich znaków zajmują w UTF-8 jeden bajt, ą, ć czy ż dwa bajty, a emoji cztery.
  2. 2 Każdy bajt ma osiem bitów. Bity ustawia się jeden za drugim i dzieli na grupy po sześć.
  3. 3 Każda szóstka bitów to liczba od 0 do 63, której w alfabecie Base64 odpowiada jeden znak: 0 to A, 26 to a, 52 to 0, 62 to +, a 63 to /.
  4. 4 Jeśli na ostatnią szóstkę zabraknie bitów, uzupełnia się ją zerami. Na końcu wyniku dopisuje się wtedy znaki =, aby jego długość była podzielna przez cztery.

Przykład rozkłada pierwsze sześć bajtów tekstu.

Znak Bajt Bity
H7201001000
e10101100101
j10601101010
Szóstka bitów Wartość Znak Base64
01001018S
0001106G
01010121V
10101042q

= SGVq

Alfabet Base64 (tabela znaków)

Base64 używa dokładnie 64 znaków. Każdy odpowiada jednej liczbie od 0 do 63, czyli jednej szóstce bitów. Znak = nie należy do alfabetu, tylko uzupełnia długość na końcu.

  1. 0 A
  2. 1 B
  3. 2 C
  4. 3 D
  5. 4 E
  6. 5 F
  7. 6 G
  8. 7 H
  9. 8 I
  10. 9 J
  11. 10 K
  12. 11 L
  13. 12 M
  14. 13 N
  15. 14 O
  16. 15 P
  17. 16 Q
  18. 17 R
  19. 18 S
  20. 19 T
  21. 20 U
  22. 21 V
  23. 22 W
  24. 23 X
  25. 24 Y
  26. 25 Z
  27. 26 a
  28. 27 b
  29. 28 c
  30. 29 d
  31. 30 e
  32. 31 f
  33. 32 g
  34. 33 h
  35. 34 i
  36. 35 j
  37. 36 k
  38. 37 l
  39. 38 m
  40. 39 n
  41. 40 o
  42. 41 p
  43. 42 q
  44. 43 r
  45. 44 s
  46. 45 t
  47. 46 u
  48. 47 v
  49. 48 w
  50. 49 x
  51. 50 y
  52. 51 z
  53. 52 0
  54. 53 1
  55. 54 2
  56. 55 3
  57. 56 4
  58. 57 5
  59. 58 6
  60. 59 7
  61. 60 8
  62. 61 9
  63. 62 +
  64. 63 /

Skąd na końcu = albo ==

Base64 przetwarza dane po trzy bajty. Gdy na końcu zostanie ich mniej, brakujące miejsce oznacza znak =. Jeśli został jeden bajt, dochodzą dwa znaki =, przy dwóch bajtach jeden, a przy trzech żaden. Niektóre systemy, na przykład JWT, pomijają znaki =, bo dekoder i tak potrafi wyliczyć długość.

T
VA==
Te
VGU=
Tes
VGVz
Test
VGVzdA==

Jak duży będzie Base64

Z każdych trzech bajtów powstają cztery znaki, więc Base64 ma 4 × ⌈n ÷ 3⌉ znaków, gdzie n to liczba bajtów, a nawiasy oznaczają zaokrąglenie w górę. Wynik jest zatem mniej więcej o 33% dłuższy. W e-mailach Base64 dzieli się dodatkowo na wiersze po 76 znaków, a każdy wiersz kończą dwa znaki CR LF, dlatego załącznik rośnie o około 37%. I w drugą stronę: Base64 o długości d zawiera 3 × d ÷ 4 bajtów, od czego odejmujesz liczbę znaków = na końcu.

Oryginalny plikBase64Base64 w e-mailu (MIME)
1,00 KB1,34 KB1,37 KB
10,00 KB13,34 KB13,69 KB
100 KB133 KB137 KB
1,00 MB1,33 MB1,37 MB
10,00 MB13,33 MB13,68 MB

Warianty Base64

Wszystkie warianty używają tych samych pierwszych 62 znaków. Różnią się dwoma ostatnimi znakami, uzupełnianiem na końcu i tym, czy wynik dzieli się na wiersze.

WariantZnaki 62 i 63Uzupełnienie =WierszeGdzie się go używa
Standardowy Base64 (RFC 4648) + / tak bez podziału API, JSON, data URI
base64url (RFC 4648) - _ zwykle nie bez podziału JWT, OAuth, adresy URL, nazwy plików
MIME (RFC 2045) + / tak po 76 znaków załączniki e-maili
PEM (RFC 7468) + / tak po 64 znaki certyfikaty i klucze kryptograficzne

Base64 i base64url

Zwykły Base64 zawiera znaki +, / i =, które w adresach URL mają własne znaczenie. Wariant base64url używa zamiast nich - i _, a końcowe znaki = pomija. Korzystają z niego na przykład tokeny JWT, OAuth i podpisy w adresach URL.

Obraz jako data URI

Data URI wstawia plik bezpośrednio do HTML albo CSS, na przykład <img src="data:image/png;base64,…">. Sprawdza się przy małych ikonach, bo przeglądarka nie musi ich pobierać osobno. Przy większych obrazach to się nie opłaca: są o jedną trzecią większe, a przeglądarka nie może ich osobno zapisać w pamięci podręcznej. Nie wstawiaj data URI do e-maili, Gmail takich obrazów nie wyświetli, a filtry antyspamowe często uznają je za podejrzane.

Gdzie Base64 przydaje się w praktyce

Obrazy bezpośrednio w HTML i CSS

Małą ikonę czy logo wstawisz do strony jako data URI, bez osobnego pliku i bez dodatkowego żądania do serwera.

<img src="data:image/png;base64,iVBORw0KGgo…" alt="Logo">

.ikona {
  background: url("data:image/svg+xml;base64,PHN2Zy…");
}

Załączniki e-maili

E-mail przenosi tylko tekst, dlatego każdy załącznik koduje się do Base64. Nagłówek załącznika mówi programowi pocztowemu, jak go odkodować.

Content-Type: application/pdf; name="faktura.pdf"
Content-Transfer-Encoding: base64

JVBERi0xLjcKJeLjz9MK…

Logowanie przez HTTP Basic

Przeglądarka łączy login i hasło dwukropkiem i wysyła je w Base64. To nie jest szyfrowanie, dane chroni tylko połączenie HTTPS.

Authorization: Basic bG9naW46aGFzbG8=

Tokeny JWT

Token składa się z trzech części oddzielonych kropką: nagłówka, danych i podpisu. Dwie pierwsze to JSON zakodowany w base64url, więc każdy może je odczytać. Podpis gwarantuje, że nikt ich nie zmienił, ale ich nie ukrywa.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJuYW1lIjoiSmFuYSJ9.podpis

Certyfikaty i klucze

Certyfikaty SSL i klucze prywatne zapisuje się jako Base64 między wierszami BEGIN i END. Ten format nazywa się PEM.

-----BEGIN CERTIFICATE-----
MIIDdzCCAl+gAwIBAgIE…
-----END CERTIFICATE-----

Pliki w API i JSON

JSON nie potrafi przechować danych binarnych, dlatego API przesyłają pliki jako ciąg Base64 w zwykłym polu tekstowym.

{
  "nazwa": "umowa.pdf",
  "zawartosc": "JVBERi0xLjcKJeLjz9MK…"
}

Sekrety w Kubernetes

Kubernetes przechowuje wartości w obiektach Secret jako Base64, aby mogły zawierać także dane binarne. To jednak nie jest ochrona: kto ma dostęp do obiektu, po prostu odkoduje wartość. Prawdziwą ochronę zapewni dopiero szyfrowanie w magazynie danych i uprawnienia dostępu.

apiVersion: v1
kind: Secret
data:
  password: dGFqbmVoZXNsbw==

Jak rozpoznać plik po początku Base64

Większość formatów zaczyna się charakterystycznymi bajtami, dlatego również ich Base64 zaczyna się zawsze tak samo. Po pierwszych znakach często rozpoznasz typ pliku jeszcze przed odkodowaniem. Wiersze oznaczone gwiazdką pokazują tylko najczęstszy początek, a nie stałą regułę.

Base64 zaczyna się odTyp plikuTyp MIME
iVBORw0KGg…PNGimage/png
/9j/…JPEGimage/jpeg
R0lGO…GIFimage/gif
UklGR…RIFF (WebP, WAV, AVI)image/webp, audio/wav
PHN2Z…SVG*image/svg+xml
JVBERi…PDFapplication/pdf
UEsDB…ZIP, DOCX, XLSXapplication/zip
H4sI…GZIPapplication/gzip
PD94bW…XML*application/xml
ey…JSON, JWT*application/json

Base64 a inne kodowania

Base64 to nie jedyny sposób zapisu bajtów tekstem. Inne kodowania są albo dłuższe, ale łatwiej je czytać i przepisywać, albo krótsze, ale używają mniej typowych znaków.

KodowanieZnakiPrzyrostTypowe zastosowanie
Hex (Base16) 0-9, A-F 100% hashe, kolory, zrzuty bajtów
Base32 A-Z, 2-7 60% klucze do uwierzytelniania dwuskładnikowego (TOTP)
Base58 58 znaków bez 0, O, I i l ok. 37% adresy kryptowalut, krótkie identyfikatory
Base64 A-Z, a-z, 0-9, + / 33% załączniki, data URI, API, JWT
Base85 (Ascii85) 85 znaków 25% PDF, PostScript, zmiany binarne w Gicie

Base64 to nie szyfrowanie

Base64 może odkodować każdy i to bez żadnego klucza. Nie chroni haseł, danych osobowych ani tajnych kluczy, tylko zapisuje je w innej postaci. Za to oszuści chętnie go wykorzystują: w e-mailach phishingowych i złośliwych skryptach ukrywają nim linki i kod przed prostymi filtrami. Jeśli trafisz gdzieś na podejrzanie długi ciąg Base64, śmiało odkoduj go tutaj i sprawdź, co zawiera. Podczas odkodowywania nic nie zostaje uruchomione.

Krótka historia Base64

  1. 1987

    Kodowanie pojawiło się po raz pierwszy w specyfikacji bezpiecznej poczty PEM (RFC 989) pod nazwą printable encoding.

  2. 1992

    Standard MIME (RFC 1341) wykorzystał je do załączników e-mail, wprowadził wiersze po 76 znaków i nadał mu nazwę Base64.

  3. 2003

    RFC 3548 opisał Base64 jako osobny standard, niezależny od poczty, i dodał wariant dla adresów URL i nazw plików.

  4. 2006

    RFC 4648 zastąpił poprzedni dokument i obowiązuje do dziś.

Dla programistów

Base64 w programowaniu i w wierszu poleceń

Tak zakodujesz i odkodujesz tekst „Hej” w popularnych językach. Tekst z polskimi znakami zawsze najpierw zamień na bajty w UTF-8, inaczej dostaniesz błąd albo inny wynik.

JavaScript

const base64 = btoa(String.fromCharCode(...new TextEncoder().encode('Hej')));
const text = new TextDecoder().decode(Uint8Array.from(atob(base64), (c) => c.charCodeAt(0)));

Samo btoa('żółw') kończy się błędem InvalidCharacterError, bo funkcja btoa przyjmuje tylko znaki Latin-1. Najnowsze przeglądarki mają też Uint8Array.prototype.toBase64().

Node.js

Buffer.from('Hej', 'utf8').toString('base64');
Buffer.from('SGVq', 'base64').toString('utf8');
Buffer.from('Hej').toString('base64url');

Node.js obsługuje też kodowanie base64url, nie potrzebujesz do tego żadnej biblioteki.

PHP

base64_encode('Hej');
base64_decode('SGVq', true);

Drugi parametr true sprawia, że przy nieprawidłowych danych funkcja zwróci false. Bez niego PHP po cichu pomija niedozwolone znaki.

Python

import base64

base64.b64encode('Hej'.encode()).decode()
base64.b64decode('SGVq').decode()
base64.urlsafe_b64encode(b'Hej')

Błąd Incorrect padding oznacza, że w ciągu brakuje znaków = na końcu.

Java

Base64.getEncoder().encodeToString("Hej".getBytes(StandardCharsets.UTF_8));
new String(Base64.getDecoder().decode("SGVq"), StandardCharsets.UTF_8);

Dla base64url użyj Base64.getUrlEncoder(), dla e-maili Base64.getMimeEncoder().

C#

Convert.ToBase64String(Encoding.UTF8.GetBytes("Hej"));
Encoding.UTF8.GetString(Convert.FromBase64String("SGVq"));

Te same metody działają w .NET i w PowerShellu.

Linux i macOS

printf 'Hej' | base64
echo 'SGVq' | base64 -d
base64 < plik.pdf > plik.txt

Polecenie echo dodaje na końcu znak nowego wiersza, dlatego do kodowania użyj printf albo echo -n. Starsze wersje macOS zamiast -d używają -D.

Windows PowerShell

[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hej'))
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVq'))
[Convert]::ToBase64String([IO.File]::ReadAllBytes('plik.pdf'))

W klasycznym wierszu poleceń działa też certutil -encode plik.pdf plik.txt, ale wynik zostanie otoczony wierszami BEGIN i END.

Obrazy i SVG w kodzie

Obraz na Base64 w JavaScripcie

const file = document.querySelector('input[type=file]').files[0];
const reader = new FileReader();

reader.onload = () => console.log(reader.result);
reader.readAsDataURL(file);

Metoda readAsDataURL zwraca gotowe data URI razem z typem pliku, na przykład data:image/png;base64,iVBORw0KGg….

Wskazówka dla ikon SVG

SVG to tekst, więc wstawiając go do CSS, nie musisz kodować go do Base64. Wystarczy zakodować go jako URL, na przykład url("data:image/svg+xml,%3Csvg…"). Wynik jest zwykle krótszy, a ikonę łatwo w nim poprawić, na przykład zmienić kolor. Base64 ma sens przy SVG tylko wtedy, gdy system nie przyjmie innego zapisu.

Odkodowanie pliku Base64 w wierszu poleceń

Gdy masz Base64 zapisany w pliku, na przykład z API albo z logu, odkodujesz go od razu z powrotem do oryginalnego pliku:

Linux
base64 -d obraz.txt > obraz.png
macOS
base64 -d -i obraz.txt -o obraz.png
Windows (wiersz poleceń)
certutil -decode obraz.txt obraz.png
Windows PowerShell
[IO.File]::WriteAllBytes('obraz.png', [Convert]::FromBase64String((Get-Content obraz.txt -Raw)))
OpenSSL
openssl base64 -d -A -in obraz.txt -out obraz.png

Jeśli plik zaczyna się nagłówkiem data URI, na przykład data:image/png;base64,, najpierw go usuń. Polecenie certutil poradzi sobie też z plikiem, który ma wiersze BEGIN i END.

Częste błędy i jak je naprawić

Polskie znaki zamieniają się w Ä™, Ĺ‚ i podobne krzaki

Tekst zakodowano w UTF-8, ale odczytujesz go jako Windows-1250, albo odwrotnie. Słowo się w UTF-8 wyświetlone jako Windows-1250 wygląda jak siÄ™. Jeśli tekst nie jest w UTF-8, to narzędzie spróbuje odczytać go jako Windows-1250 i Cię o tym uprzedzi.

InvalidCharacterError w JavaScripcie

Funkcja btoa przyjmuje tylko znaki Latin-1, więc przy ą, ł czy emoji zawodzi. Najpierw zamień tekst na bajty za pomocą TextEncoder, jak w przykładzie powyżej.

Incorrect padding w Pythonie

Base64 z tokenu JWT albo z adresu URL nie ma na końcu znaków =. Dopisz je, aby długość była podzielna przez cztery. To narzędzie uzupełnia je samo.

Znaki + zamieniły się w spacje

Gdy wstawisz Base64 do adresu bez zakodowania, serwer odczyta + jako spację i odkodowanie się nie powiedzie. Zakoduj wartość URL enkoderem albo użyj base64url.

Po odkodowaniu znowu widać Base64

Tekst został zakodowany dwa razy, na przykład Hej → SGVq → U0dWcQ==. Odkoduj go jeszcze raz: przyciskiem Zamień przenieś wynik do pola wejściowego i ponownie wybierz Odkoduj.

Obraz się nie wyświetla

Ciąg jest ucięty, brakuje mu początku albo zawiera początek data URI dwa razy. Porównaj pierwsze znaki z tabelą powyżej: PNG musi zaczynać się od iVBORw0KGg, a JPEG od /9j/.

Kiedy używać Base64, a kiedy nie

Sprawdza się

  • małe ikony i obrazy do kilku kilobajtów bezpośrednio w CSS czy HTML
  • dane binarne w JSON, XML albo w pliku konfiguracyjnym
  • klucze, tokeny i podpisy, które muszą być zwykłym tekstem
  • przesyłanie przez systemy, które obsługują tylko tekst, na przykład e-mail

Nie sprawdza się

  • duże obrazy i filmy na stronach, które stają się o jedną trzecią większe i nie mogą trafić osobno do pamięci podręcznej
  • obrazy w e-mailach, Gmail ich nie wyświetli
  • pliki w bazie danych z kolumnami binarnymi (BLOB), gdzie Base64 zajmie o jedną trzecią więcej miejsca
  • ochrona haseł i danych wrażliwych, do tego służy szyfrowanie albo hashowanie

Słowniczek pojęć

Bit
Najmniejsza jednostka danych, przyjmuje wartość 0 albo 1.
Bajt
Grupa ośmiu bitów, czyli liczba od 0 do 255.
UTF-8
Sposób zapisu znaków tekstu za pomocą bajtów. Litery bez polskich znaków zajmują jeden bajt, polskie znaki dwa.
Padding
Uzupełnienie wyniku znakami = do długości podzielnej przez cztery.
base64url
Wariant Base64 ze znakami - i _ zamiast + i /, odpowiedni do adresów URL i nazw plików.
MIME
Standard poczty elektronicznej, który używa Base64 do załączników.
Data URI
Zapis pliku bezpośrednio w tekście w postaci data:typ;base64,zawartość.
PEM
Format certyfikatów i kluczy: Base64 między wierszami BEGIN i END.
RFC 4648
Dokument, który obecnie oficjalnie definiuje Base64, Base32 i Base16.

FAQ

Czym jest Base64?

Base64 to sposób zapisu dowolnych danych za pomocą 64 znaków, które bez problemu przechodzą przez systemy tekstowe: A do Z, a do z, 0 do 9 oraz znaki + i /. Znak = na końcu tylko uzupełnia długość. To nie kompresja ani szyfrowanie, tylko inny zapis tych samych bajtów.

Czy Base64 to szyfrowanie?

Nie. Base64 może odkodować każdy bez hasła czy klucza, więc nie chroni poufnych danych. Jeśli widzisz hasło zakodowane w Base64, na przykład w nagłówku HTTP Basic, chroni je tylko szyfrowane połączenie HTTPS.

Dlaczego Base64 jest dłuższy od oryginału?

Base64 dzieli dane na grupy po trzy bajty i każdą zapisuje czterema znakami. Wynik jest więc mniej więcej o 33% dłuższy. Przy tekście z polskimi znakami różnica jest jeszcze większa, bo litery takie jak ą czy ż zajmują w UTF-8 dwa bajty.

Czym jest base64url i kiedy go używać?

base64url to wariant dla adresów i nazw plików. Zamiast + i / używa - i _ oraz pomija końcowe =. Używają go tokeny JWT, OAuth czy podpisy w URL. Przy odkodowywaniu to narzędzie rozpozna go automatycznie.

Jak odkodować Base64 do obrazu albo PDF?

Wklej ciąg Base64 albo całe data URI i wybierz Odkoduj. Jeśli wynik nie jest tekstem, narzędzie rozpozna typ pliku po jego zawartości, przy obrazie pokaże podgląd i zaproponuje przycisk pobierania.

Dlaczego przy odkodowywaniu pojawia się błąd?

Base64 może zawierać tylko litery bez polskich znaków, cyfry i znaki + / =, a w base64url także - _. Spacje i podziały wierszy nie przeszkadzają. Błąd spowoduje inny znak albo niepełnie skopiowany ciąg. Token JWT składa się z trzech części oddzielonych kropką, dlatego odkoduj każdą osobno.

Czy mój tekst lub plik jest wysyłany na serwer?

Nie. Kodowanie i odkodowywanie odbywa się bezpośrednio w Twojej przeglądarce, a tekst ani plik nie opuszczają Twojego komputera.

Jak zamienić obraz na Base64?

Przełącz na Plik, wybierz obraz i ustaw format Data URI. Wynik wstawisz bezpośrednio do atrybutu src albo do CSS. Sprawdza się przy obrazach o rozmiarze kilku kilobajtów, większe lepiej zostawić jako osobny plik.

Dlaczego na końcu Base64 jest jeden albo dwa znaki =?

Znaki = uzupełniają długość do wielokrotności czterech. Dwa znaki = oznaczają, że ostatnia grupa miała tylko jeden bajt, a jeden znak = oznacza dwa bajty. Nie wpływają na zawartość, a w base64url często się je pomija.

Jak odkodować token JWT?

Podziel token w miejscach kropek i wklej pierwszą albo drugą część. Otrzymasz JSON z nagłówkiem albo z danymi tokenu. Trzecia część to podpis i nie zawiera czytelnego tekstu.

Dlaczego tekst wyświetlił się z ostrzeżeniem o Windows-1250?

Odkodowane bajty nie były prawidłowym UTF-8, ale wyglądały jak tekst, więc narzędzie spróbowało odczytać je w starszym kodowaniu Windows-1250, którego używały polskie i inne środkowoeuropejskie programy dla Windows. To tylko przypuszczenie. Jeśli wynik nie ma sensu, pobierz oryginalne dane jako plik.

Dlaczego wartości w Kubernetes Secret są w Base64, skoro to nie szyfrowanie?

Base64 służy tam do tego, aby w pliku YAML dało się zapisać także dane binarne, na przykład certyfikaty. Nie zapewnia ochrony, wartość odczyta każdy, kto ma dostęp do obiektu. Do ochrony trzeba włączyć szyfrowanie w magazynie danych i ograniczyć uprawnienia dostępu.

Jak wygenerować losowy klucz w Base64?

Użyj generatora powyżej na tej stronie albo polecenia openssl rand -base64 32. Oba korzystają z kryptograficznie bezpiecznego źródła losowości. Zwykłych generatorów liczb losowych z języków programowania, na przykład Math.random(), nie używaj do tajnych kluczy.