Jak używać
- Wklej ciąg Base64 w polu „Wejście”. W polu „Z formatu” jest już wybrany Base64, a w polu „Na format” – opcja „Szesnastkowy (Base16)”.
- Odczytaj wynik szesnastkowy: każdemu bajtowi odpowiadają dwie cyfry szesnastkowe.
- Jeśli potrzebny jest inny format, wybierz inne kodowanie docelowe, np. Base58 lub Base32, albo kliknij przycisk „Zamień wejście z wyjściem”, aby przekonwertować hex z powrotem na Base64.
- Skopiuj wynik przyciskiem „Kopiuj”.
Dwa sposoby zapisu tych samych bajtów
Zarówno hex, jak i Base64 służą do zapisywania danych binarnych w postaci tekstu. Hex zużywa dwa znaki na każdy bajt, dzięki czemu poszczególne wartości bajtów łatwo odczytać i porównać. Base64 mieści 3 bajty w 4 znakach, więc jest mniej więcej o jedną trzecią krótszy. Konwersja między nimi zmienia wyłącznie zapis, nigdy same dane:
| Wartość | Bajty | Długość w hex | Długość w Base64 |
|---|---|---|---|
| Skrót MD5 | 16 | 32 | 24 |
| Skrót SHA-1 | 20 | 40 | 28 |
| Skrót SHA-256, klucz publiczny Ed25519 | 32 | 64 | 44 |
| Skrót SHA-384 | 48 | 96 | 64 |
| Skrót SHA-512, podpis Ed25519 | 64 | 128 | 88 |
W zapisie szesnastkowym dane pokazują też edytory heksadecymalne, analizatory pakietów i debugery, więc po konwersji Base64 na hex można bezpośrednio zestawić dane z tym, co wyświetlają te narzędzia.
Kiedy potrzebna jest konwersja Base64 na hex
- Porównywanie skrótów. Narzędzia takie jak
sha256sumwyświetlają wynik w hex, natomiast atrybuty Subresource Integrity, skróty w Content Security Policy i nagłówki sum kontrolnych, takie jakContent-MD5, używają Base64. Aby je porównać, wystarczy przekonwertować jedną ze stron. - Odciski palców SSH.
ssh-keygen -lwyświetla odciskiSHA256:jako Base64 bez dopełnienia, a rekordy DNS SSHFP przechowują ten sam skrót SHA-256 w hex. Wklej część poSHA256:, aby otrzymać postać szesnastkową. - Klucze, wektory IV i podpisy. Podczas debugowania kodu kryptograficznego bajty w zapisie szesnastkowym ułatwiają sprawdzenie długości, porównanie wartości i wychwycenie brakującego lub nadmiarowego bajtu.
Jakie dane wejściowe akceptuje konwerter
Spacje i podziały wierszy w danych Base64 są ignorowane, znaki bezpieczne dla URL - i _ są akceptowane, a dopełnienie = jest opcjonalne, więc wartości skopiowane z JSON-a, tokenów JWT czy terminala można wklejać bez zmian. Konwersja działa na zdekodowanych bajtach: wynik to zapis szesnastkowy danych, a nie samych znaków Base64. Aby zobaczyć kody szesnastkowe fragmentu tekstu, użyj narzędzia Base16.
# Powłoka
printf '%s' "$B64" | base64 --decode | xxd -p
# Python
base64.b64decode(s).hex()
// Node.js
Buffer.from(s, 'base64').toString('hex')
Najczęściej zadawane pytania
Czy konwertowany jest tekst Base64, czy bajty, które on reprezentuje?
Dlaczego wynik szesnastkowy jest dłuższy niż dane wejściowe Base64?
Hex potrzebuje 2 znaków na bajt, a Base64 około 1,33. 32-bajtowy skrót SHA-256 zajmuje 44 znaki w Base64 i 64 znaki w hex.
Jak uzyskać hex zapisany wielkimi literami lub z dwukropkami jako separatorami?
Czy można konwertować wartości Base64URL z tokena JWT lub klucza JSON Web Key?
Tak. Znaki bezpieczne dla URL i brakujące dopełnienie są obsługiwane automatycznie, więc parametry kluczy i podpisy można wklejać bez zmian.