logo
GeekFormat

Konwerter Base64-Hex

Heks wejściowy
0 znaków

Konwerter Base64-Hex online do dwukierunkowej konwersji między ciągami szesnastkowymi a kodowaniem Base64. Obsługuje usuwanie prefiksu 0x, przełączanie wielkości liter, konwersję w czasie rzeczywistym i przetwarzanie lokalne w przeglądarce bez wysyłania danych na serwer.

Powiązane Rekomendacje

Przypadki użycia

  • Analiza pakietów Wireshark: konwersja szesnastkowych zrzutów pakietów sieciowych na Base64 do przekazywania w API lub dokumentacji
  • Debugowanie protokołów sieciowych: szybka konwersja między Hex a Base64 podczas badania protokołów binarnych
  • Badania kryptograficzne: konwersja kluczy, haszy i podpisów między formatem szesnastkowym a Base64
  • Tworzenie API: konwersja danych binarnych na Base64 do przekazywania w żądaniach JSON i z powrotem na Hex do debugowania
  • Analiza złośliwego oprogramowania: przetwarzanie szesnastkowych zrzutów z deasemblerów i debugerów
  • Praca z certyfikatami: konwersja certyfikatów i kluczy PEM/DER między formatami tekstowymi
  • Odzyskiwanie danych: konwersja zrzutów Hex uszkodzonych plików na Base64 i z powrotem
  • Testowanie webhooków: przygotowywanie binarnych ładunków w formacie Base64 z reprezentacji szesnastkowych
  • Porównywanie logów: porównywanie danych w logach zapisanych w różnych formatach kodowania
  • Przetwarzanie danych IoT: konwersja binarnych ciał wiadomości MQTT/CoAP między Hex a Base64
  • Forensyka: analiza szesnastkowych obrazów pamięci i dysków z wygodnym przełączaniem kodowań
  • Nauka technologii sieciowych: obrazowe badanie relacji między bajtowym a zwartym tekstowym przedstawieniem danych

Funkcje

  • Konwersja dwukierunkowa: konwersja Hex na Base64 i Base64 na Hex w jednym narzędziu z natychmiastowym przełączaniem kierunku
  • Usuwanie prefiksu 0x: automatyczne wykrywanie i usuwanie prefiksu 0x z ciągów szesnastkowych podczas wprowadzania
  • Przełącznik wielkości liter: wybór wyprowadzenia znaków Hex w wersji wielkiej lub małej, zgodnie z wymaganiami danego protokołu
  • Konwersja w czasie rzeczywistym: wynik pojawia się natychmiast po wpisaniu, bez naciskania przycisków i opóźnień
  • Przetwarzanie lokalne: wszystkie obliczenia wykonywane są w przeglądarce, dane nie opuszczają Twojego urządzenia
  • Obsługa separatorów: automatyczne rozpoznawanie spacji, podziałów wierszy i innych separatorów w ciągach Hex
  • Tryb Wireshark: bezpośrednia zgodność z zrzutami szesnastkowymi z Wireshark i innych analizatorów pakietów
  • Kopiowanie jednym kliknięciem: kopiowanie wyniku do schowka w celu użycia w parametrach API lub dokumentacji
  • Sprawdzanie poprawności: wbudowana walidacja danych wejściowych z jasnymi komunikatami o błędach dla nieprawidłowych danych
  • Statystyki w czasie rzeczywistym: wyświetlanie liczby bajtów oraz znaków wejściowych i wyjściowych dla celów kontrolnych
  • Zgodność z RFC 4648: zgodność ze standardem kodowania Base64 według specyfikacji RFC 4648
  • Obsługa kodowań zagnieżdżonych: możliwość wielokrotnej konwersji między formatami bez utraty danych
  • Historia sesji: automatyczne zapisywanie ostatnich konwersji dla szybkiego ponownego dostępu
  • Interfejs responsywny: wygodna praca zarówno na komputerze, jak i na urządzeniach mobilnych

Jak Używać

  1. Wybierz kierunek konwersji: Hex na Base64 lub Base64 na Hex
  2. Wklej dane do odpowiedniego pola wejściowego — konwersja uruchomi się automatycznie w czasie rzeczywistym
  3. W razie potrzeby włącz opcje: usuwanie prefiksu 0x lub przełączanie na wielkie/małe litery Hex
  4. Sprawdź wynik w polu wyjściowym i upewnij się co do poprawności konwersji na podstawie statystyk
  5. Skopiuj wynik jednym kliknięciem do dalszego użycia

Często Zadawane Pytania

Jaka jest różnica między Hex a Base64?

Hex (Base16) używa 2 znaków na bajt (100% narzutu), jest wygodny do analizy bajt po bajcie i debugowania. Base64 używa 4 znaków na 3 bajty (~33% narzutu), lepiej nadaje się do przesyłania danych binarnych przez protokoły tekstowe i osadzania w JSON/HTML.

Po co konwertować Hex na Base64?

Najczęściej jest to potrzebne podczas debugowania API: Wireshark i deasemblery wyświetlają dane w Hex, a do przekazywania w żądaniach JSON wymagany jest Base64. Konwersja Hex→Base64 jest używana także podczas pracy z kluczami kryptograficznymi, haszami i binarnymi ładunkami webhooków.

Po co konwertować Base64 na Hex?

Konwersja Base64→Hex jest niezbędna do wizualnej analizy danych: w postaci Hex wygodnie badać strukturę protokołów binarnych, porównywać bajty ze zrzutami Wireshark, znajdować sygnatury plików i debugować operacje kryptograficzne.

Czy obsługiwane jest usuwanie prefiksu 0x?

Tak. Narzędzie automatycznie wykrywa i usuwa prefiks 0x (w dowolnej wielkości liter) z wejściowych ciągów Hex. Na przykład ciąg 0xDEADBEEF zostanie przetworzony poprawnie, podobnie jak jego wersja bez prefiksu.

Czy można kopiować Hex bezpośrednio z Wireshark?

Tak. Wireshark wyświetla pakiety grupami po 2 cyfry Hex ze spacjami. Narzędzie automatycznie ignoruje spacje i podziały wierszy, więc można po prostu zaznaczyć i skopiować zrzut z Wireshark bez dodatkowego czyszczenia.

Jaka wielkość liter na wyjściu Hex jest używana domyślnie?

Domyślnie używane są małe litery (jak na wyjściu większości narzędzi Unix i Wireshark), ale można przełączyć się na wielkie litery, jeśli wymaga tego protokół, certyfikat lub inne oprogramowanie.

Czym jest dopełnienie (padding) w Base64?

Dopełnienie to znaki = na końcu ciągu Base64, uzupełniające wyjście do wielokrotności 4 znaków. Dopełnienie jest dodawane, gdy liczba bajtów wejściowych nie jest wielokrotnością trzech. Narzędzie zachowuje dopełnienie domyślnie zgodnie z RFC 4648.

Czy wynik można używać w żądaniach API?

Tak. Wyjście Base64 jest gotowe do wklejenia w JSON, formularze i inne tekstowe parametry API. Wyjście Hex jest gotowe do użycia w narzędziach debugowania, testach i dokumentacji.

Czy istnieje ograniczenie rozmiaru danych wejściowych?

Ograniczenie zależy od wydajności Twojej przeglądarki. Typowy scenariusz — praca z danymi do kilku megabajtów (klucze, tokeny, pakiety sieciowe, fragmenty plików) — nie sprawia problemów.

Dlaczego wyjście Hex i Base64 mają różną długość?

Hex używa 2 znaków na każdy bajt, Base64 — 4 znaków na każde 3 bajty. Dlatego dla tych samych danych Base64 jest o około 25% krótszy niż Hex. Statystyki pod polami wejściowymi pokazują rzeczywistą liczbę bajtów.

Czy obsługiwany jest URL-Safe Base64?

W bieżącej wersji używane jest standardowe kodowanie Base64 według RFC 4648 ze znakami + i /. Dla wariantu URL-Safe (z - i _ zamiast + i /) użyj specjalistycznego narzędzia Base64 URL-Safe.

Czy nieprawidłowe dane wejściowe są obsługiwane?

Tak. Przy wprowadzeniu nieprawidłowych znaków Hex lub niepoprawnego ciągu Base64 narzędzie wyświetla jasny komunikat o błędzie, wskazujący pozycję i charakter problemu.

Czy dane są wysyłane na serwer?

Nie. Wszystkie konwersje wykonywane są lokalnie w Twojej przeglądarce przy użyciu natywnych API JavaScript (TextEncoder, atob, btoa z korekcją UTF-8). Dane nie są przesyłane przez sieć.

Czy można konwertować duże pliki?

Narzędzie jest zoptymalizowane do pracy z tekstowymi reprezentacjami danych (pakiety, klucze, tokeny). Do plików użyj specjalistycznych narzędzi File to Base64 i File Hash.

Czym różni się od osobnych narzędzi Hex i Base64?

To narzędzie zostało stworzone specjalnie dla częstego scenariusza przełączania się między dwoma formatami podczas debugowania. Obsługuje funkcje przydatne właśnie podczas analizy pakietów i protokołów: usuwanie 0x, ignorowanie separatorów, przełączanie wielkości liter i dwukierunkowość w jednym interfejsie.

Czym jest konwerter Base64-Hex?

Konwerter Base64-Hex to narzędzie do dwukierunkowej konwersji między szesnastkową (Hex) reprezentacją bajtów a kodowaniem Base64. Oba formaty służą do przedstawiania danych binarnych w postaci tekstowej, ale spełniają różne zadania: Hex zapewnia czytelne przedstawienie bajt po bajcie, idealne do debugowania i analizy, a Base64 — zwartą reprezentację do przesyłania przez protokoły tekstowe.

**Hex (Base16)** koduje każdy bajt dwiema cyframi szesnastkowymi (0-9, A-F lub a-f), co daje 100% narzutu (2 znaki na bajt). Format ten dominuje w analizie pakietów (Wireshark, tcpdump), debugerach, edytorach szesnastkowych i na wyjściu funkcji kryptograficznych, ponieważ umożliwia łatwe odczytywanie poszczególnych bajtów.

**Base64** (RFC 4648) koduje co 3 bajty na 4 znaki z alfabetu A-Z, a-z, 0-9, +, / (z dopełnieniem =), zapewniając 33% narzutu. Base64 to standard do osadzania danych binarnych w JSON, poczcie e-mail (MIME), Data URI, JWT i HTTP Basic Auth, gdzie wymagana jest bezpieczna transmisja przez kanały tekstowe.

**Prefiks 0x** jest często używany w językach programowania (C, Python, JavaScript) i logach do oznaczania literałów szesnastkowych (np. 0xDEADBEEF). Narzędzie automatycznie wykrywa i usuwa ten prefiks podczas wprowadzania, dzięki czemu konwersja działa poprawnie bez ręcznego czyszczenia.

**Przełącznik wielkości liter** w Hex jest istotny podczas pracy z różnymi systemami: niektóre protokoły i narzędzia oczekują wielkich liter (np. certyfikaty, niektóre hasze), inne — małych (np. wyjście Wireshark, narzędzia Unix). Narzędzie umożliwia przełączanie wielkości liter jednym kliknięciem.

**Wireshark** i inne analizatory pakietów wyświetlają dane w formacie Hex z separatorami (grupy po 2 znaki oddzielone spacjami). Konwerter automatycznie obsługuje takie separatory, pozwalając bezpośrednio kopiować zrzuty z Wireshark i otrzymywać poprawny Base64 bez ręcznego przetwarzania.

**Konwersja w czasie rzeczywistym** oznacza, że przy każdej zmianie danych wejściowych wynik jest przeliczany automatycznie bez naciskania przycisku. Jest to szczególnie przydatne podczas debugowania protokołów, gdy trzeba szybko sprawdzić wiele wartości pod rząd.

**Przetwarzanie lokalne** gwarantuje, że wszystkie konwersje wykonywane są wyłącznie w Twojej przeglądarce przy użyciu wbudowanych API JavaScript. Dane nie są wysyłane na serwer, co zapewnia poufność podczas pracy z wrażliwymi informacjami — kluczami, tokenami, zawartością pakietów.

术语表

Hex (Base16)
Kodowanie szesnastkowe, przedstawiające każdy bajt dwoma znakami z zakresu 0-9 i A-F (lub a-f). Używane do przedstawiania danych binarnych bajt po bajcie w debugerach, analizatorach pakietów i kryptografii.
Base64
Kodowanie binarne-tekstowe według RFC 4648, używające 64 znaków drukowalnych (A-Z, a-z, 0-9, +, /) i znaku dopełnienia =. Koduje co 3 bajty na 4 znaki, zapewniając narzut około 33%.RFC 4648
RFC 4648
Standard IETF definiujący kodowania Base16 (Hex), Base32 i Base64, w tym alfabety znaków, reguły dopełniania i wariant URL-Safe.RFC 4648
Prefiks 0x
Powszechnie przyjęte oznaczenie literału szesnastkowego w językach programowania (C, C++, Python, Java, JavaScript, Rust i innych). Ciąg 0xFF oznacza liczbę dziesiętną 255.
Wireshark
Popularny analizator protokołów sieciowych, wyświetlający przechwycone pakiety w formacie szesnastkowym ze spacjami między bajtami. Często używany wraz z konwerterem Base64-Hex podczas debugowania interakcji sieciowych.
Dopełnienie Base64
Znaki = na końcu ciągu Base64, uzupełniające długość wyjściową do wielokrotności 4. Dodawane, gdy dane wejściowe nie są wielokrotnością 3 bajtów. Na przykład 1 bajt → 2 znaki + ==, 2 bajty → 3 znaki + =.
Przetwarzanie lokalne
Model wykonania, w którym wszystkie operacje na danych odbywają się w przeglądarce użytkownika bez wysyłania na zdalny serwer. Zapewnia poufność i brak opóźnienia sieciowego.
Narzut kodowania
Zwiększenie rozmiaru danych przy kodowaniu. Hex ma 100% narzutu (podwojenie rozmiaru), Base64 — około 33%. Jest to cena za przedstawianie danych binarnych w postaci tekstowej.
Konwersja dwukierunkowa
Możliwość konwertowania danych z formatu A do formatu B i z powrotem bez utraty informacji. Konwerter Base64-Hex obsługuje oba kierunki: Hex→Base64 i Base64→Hex.
Strumień bajtów
Sekwencja bajtów stanowiąca dane binarne. Hex przedstawia każdy bajt parą znaków, dzięki czemu strumień bajtów jest czytelny dla człowieka i porównywalny bajt po bajcie.
URL-Safe Base64
Wariant Base64 według RFC 4648 §5, w którym znaki + i / są zastąpione przez - i _, a dopełnienie = jest często pomijane. Używany w JWT, OAuth PKCE, URL i nazwach plików.
atob / btoa
Wbudowane funkcje przeglądarki do dekodowania i kodowania Base64. Obsługują tylko Latin-1 (1 bajt na znak), dlatego do poprawnej pracy z UTF-8 wymagane jest dodatkowe przetwarzanie przez TextEncoder/TextDecoder.

Porównanie Hex i Base64

CechaHex (Base16)Base64
Alfabet0-9, A-F (16 znaków)A-Z, a-z, 0-9, +, / (64 znaki)
Znaków na bajt24 na 3 bajty (~1.33)
Narzut100% (podwojenie)~33%
StandardRFC 4648 §8RFC 4648 §4
DopełnienieNie wymagane= na końcu
Główne zastosowanieDebugowanie, analiza pakietów, haszeJSON, MIME, Data URI, JWT
SeparatoryCzęsto ze spacjami między bajtamiBez separatorów

Przykłady konwersji

Tekst oryginalnyHex (małe litery)Base64
Hello48656c6c6fSGVsbG8=
A41QQ==
AB4142QUI=
ABC414243QUJD
test74657374dGVzdA==

Zgodność długości Hex i Base64

Liczba bajtówDługość HexDługość Base64 (z dopełnieniem)
124 (2 znaki + ==)
244 (3 znaki + =)
364 (bez dopełnienia)
6128 (bez dopełnienia)
N2×Nceil(N/3)×4

Code Examples

JavaScript: Hex ↔ Base64 (UTF-8)

// Hex → Base64
function hexToBase64(hex) {
  hex = hex.replace(/^0x/i, '').replace(/\s/g, '');
  const bytes = new Uint8Array(hex.match(/[\da-f]{2}/gi).map(h => parseInt(h, 16)));
  let binary = '';
  bytes.forEach(b => binary += String.fromCharCode(b));
  return btoa(binary);
}

// Base64 → Hex
function base64ToHex(b64, uppercase = false) {
  const binary = atob(b64);
  const hex = [...binary].map(c => c.charCodeAt(0).toString(16).padStart(2, '0')).join('');
  return uppercase ? hex.toUpperCase() : hex;
}

console.log(hexToBase64('48656c6c6f')); // SGVsbG8=
console.log(base64ToHex('SGVsbG8='));  // 48656c6c6f

Python: Hex ↔ Base64

import base64

# Hex → Base64
def hex_to_b64(hex_str: str, strip_0x: bool = True) -> str:
    if strip_0x and hex_str.startswith('0x'):
        hex_str = hex_str[2:]
    hex_str = hex_str.replace(' ', '').replace('\n', '')
    return base64.b64encode(bytes.fromhex(hex_str)).decode()

# Base64 → Hex
def b64_to_hex(b64_str: str, uppercase: bool = False) -> str:
    h = base64.b64decode(b64_str).hex()
    return h.upper() if uppercase else h

print(hex_to_b64('48656c6c6f'))  # SGVsbG8=
print(b64_to_hex('SGVsbG8='))   # 48656c6c6f

Java: Hex ↔ Base64

import java.util.HexFormat;
import java.util.Base64;

public class HexBase64 {
    public static String hexToBase64(String hex) {
        hex = hex.replaceFirst("^0[xX]", "").replaceAll("\\s+", "");
        byte[] bytes = HexFormat.of().parseHex(hex);
        return Base64.getEncoder().encodeToString(bytes);
    }

    public static String base64ToHex(String b64, boolean uppercase) {
        byte[] bytes = Base64.getDecoder().decode(b64);
        String hex = HexFormat.of().formatHex(bytes);
        return uppercase ? hex.toUpperCase() : hex;
    }

    public static void main(String[] args) {
        System.out.println(hexToBase64("48656c6c6f"));     // SGVsbG8=
        System.out.println(base64ToHex("SGVsbG8=", false)); // 48656c6c6f
    }
}

Privacy & Security

Konwerter Base64-Hex działa w całości w Twojej przeglądarce. Wszystkie konwersje — Hex na Base64 i Base64 na Hex, usuwanie prefiksu 0x, przełączanie wielkości liter — wykonywane są lokalnie przy użyciu wbudowanych API JavaScript. Żadne dane nie są wysyłane na serwer, nie są przechowywane ani przekazywane osobom trzecim.

Authoritative References

Troubleshooting