Konwerter Base64 na Hex

Wklej ciąg Base64, aby zobaczyć te same bajty w zapisie szesnastkowym. Przydaje się do porównywania skrótów, sprawdzania kluczy i podpisów oraz dopasowywania odcisków palców, które różne narzędzia wyświetlają w różnych formatach.

Działa w całości w przeglądarce. Nic nie jest wysyłane.

Jak używać

  1. Wklej ciąg Base64 w polu „Wejście”. W polu „Z formatu” jest już wybrany Base64, a w polu „Na format” – opcja „Szesnastkowy (Base16)”.
  2. Odczytaj wynik szesnastkowy: każdemu bajtowi odpowiadają dwie cyfry szesnastkowe.
  3. 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.
  4. 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śćBajtyDługość w hexDługość w Base64
Skrót MD5163224
Skrót SHA-1204028
Skrót SHA-256, klucz publiczny Ed25519326444
Skrót SHA-384489664
Skrót SHA-512, podpis Ed255196412888

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 sha256sum wyświetlają wynik w hex, natomiast atrybuty Subresource Integrity, skróty w Content Security Policy i nagłówki sum kontrolnych, takie jak Content-MD5, używają Base64. Aby je porównać, wystarczy przekonwertować jedną ze stron.
  • Odciski palców SSH. ssh-keygen -l wyświetla odciski SHA256: jako Base64 bez dopełnienia, a rekordy DNS SSHFP przechowują ten sam skrót SHA-256 w hex. Wklej część po SHA256:, 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?
Bajty. Najpierw dekodowany jest ciąg Base64, a następnie każdy otrzymany bajt zapisywany jest jako dwie cyfry szesnastkowe. Aby uzyskać kody znaków samego ciągu Base64, zakoduj go jako tekst narzędziem Base16.
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?
Cyfry szesnastkowe nie rozróżniają wielkości liter, więc wartości zapisane małymi i wielkimi literami są równoważne. Aby uzyskać określony styl, wklej hex do kodera Base16 jako dane wejściowe w hex i wybierz opcję „Wielkie litery”, separator „Spacja” lub „Dwukropek” albo prefiks 0x.
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.