Konwerter Base64 na Hex

Konwertuj między Base64 a szesnastkowym

Base64

Hex

Działa lokalnie · Bezpieczne do wklejania sekretów
Wynik pojawi się tutaj…
Base64 → Hex

Czym jest konwersja Base64 na Hex?

Konwersja Base64 na hex przekształca dane między dwoma popularnymi schematami kodowania binarno-tekstowego. Base64 reprezentuje dane binarne przy użyciu 64 znaków ASCII (A-Z, a-z, 0-9, +, /), kodując każde 3 bajty jako 4 znaki. Szesnastkowy (hex) reprezentuje każdy bajt dokładnie jako dwa znaki z 16-symbolowego alfabetu (0-9, a-f). Konwersja między tymi formatami to proces dwuetapowy: zdekoduj ciąg Base64 do surowych bajtów, a następnie ponownie zakoduj te bajty w docelowym formacie.

Notacja szesnastkowa jest standardową reprezentacją danych binarnych w programowaniu niskopoziomowym, kryptografii i protokołach sieciowych. Każdy znak hex odpowiada bezpośrednio 4-bitowemu nibble'owi, co ułatwia odczytywanie wartości poszczególnych bajtów. Skrót SHA-256 jest na przykład niemal zawsze wyświetlany jako 64-znakowy ciąg hex. Base64 z kolei jest zoptymalizowany pod kątem kompaktowości — ten sam skrót zajmuje w Base64 tylko 44 znaki — i jest standardowym kodowaniem dla załączników e-mail (MIME), data URI i ładunków API.

Oba kodowania są zdefiniowane w RFC 4648. Konwersja między nimi jest bezstratna: żadne dane nie są dodawane ani usuwane, zmienia się tylko tekstowa reprezentacja. Sprawia to, że konwersja Base64 na hex to rutynowa operacja podczas debugowania zaszyfrowanych ładunków, sprawdzania odcisków palców certyfikatów lub weryfikacji wyników skrótów w systemach używających różnych formatów wyświetlania.

Dlaczego warto używać tego konwertera Base64 na Hex?

To narzędzie konwertuje między Base64 a szesnastkowym bezpośrednio w przeglądarce. Żadne dane nie opuszczają Twojego komputera, a konwersja odbywa się w czasie rzeczywistym podczas pisania.

Natychmiastowa konwersja
Wklej Base64 lub hex i natychmiast zobacze wynik — bez żadnego przesyłania do serwera. Tryb dwukierunkowy pozwala przełączać kierunki jednym kliknięciem.
🔒
Przetwarzanie z zachowaniem prywatności
Cała konwersja odbywa się lokalnie w przeglądarce przy użyciu JavaScript. Twoje klucze kryptograficzne, skróty i tokeny nigdy nie są przesyłane przez sieć.
Tryb dwukierunkowy
Przełączaj między Base64 na hex i hex na Base64 jednym przyciskiem. Narzędzie wykrywa i obsługuje zarówno standardowe, jak i bezpieczne dla URL warianty Base64.
📋
Czysty wynik gotowy do wklejenia
Wynik to hex pisany małymi literami, bez separatorów ani prefiksów — format oczekiwany przez większość API, CLI i języków programowania. Skopiuj jednym kliknięciem.

Przypadki użycia konwertera Base64 na Hex

Deweloper frontend
Konwertuj odpowiedzi API zakodowane w Base64 na hex podczas debugowania protokołów binarnych, ramek WebSocket lub zawartości ArrayBuffer w konsoli DevTools przeglądarki.
Inżynier backend
Przekształcaj skróty Base64 z sygnatur JWT lub odpowiedzi HMAC na hex, aby porównać je z wartościami przechowywanymi w OpenSSL lub w bazach danych używających reprezentacji hex.
DevOps / SRE
Weryfikuj odciski palców certyfikatów TLS, konwertując klucz publiczny Base64 z plików PEM na format hex odcisku wyświetlany przez przeglądarki i narzędzia monitorujące.
Analityk bezpieczeństwa
Sprawdzaj klucze szyfrowania i wektory inicjalizacji (IV) przychodzące jako Base64 w ruchu API — konwertuj na hex do analizy na poziomie bajtów w Wireshark lub CyberChef.
Inżynier danych
Przekształcaj binarne kolumny zakodowane w Base64 z baz danych (PostgreSQL bytea, MongoDB BinData) na hex do porównywania, logowania lub skryptów migracyjnych.
Student / Uczący się
Zrozum zależność między Base64 a szesnastkowym, obserwując jak te same bajty są reprezentowane w każdym formacie — utrwalasz w ten sposób podstawy kodowania.

Porównanie kodowań: Base64 vs szesnastkowy

Base64 i szesnastkowy oba konwertują dane binarne na tekst do wydruku, ale różnią się kompromisem między zwięzłością a czytelnością. Tabela poniżej podsumowuje kluczowe różnice.

WłaściwośćBase64Hexadecimal
AlfabetA-Z a-z 0-9 + / =0-9 a-f
Bity na znak64
Narzut rozmiaru~33% więcej niż surowe dane100% więcej niż surowe dane
CzytelnośćKompaktowy, ale nieprzejrzystyKażdy bajt widoczny jako 2 znaki
Główne zastosowanieE-mail, data URI, APISkróty kryptograficzne, adresy MAC, kolory
SpecyfikacjaRFC 4648IEEE 754, RFC 4648 sec 8

Przykłady konwersji

Tabela poniżej przedstawia identyczne sekwencje bajtów w reprezentacji Base64 i szesnastkowej. Zauważ, że wynik hex ma zawsze dokładnie dwa razy więcej znaków niż liczba bajtów, podczas gdy długość Base64 wynosi ceil(liczbaB / 3) * 4.

Dane wejściowe (tekst / bajty)Base64Hex
HelloSGVsbG8=48656c6c6f
ABQUI=4142
0xFFMHhGRg==30784646
AAE=0001
key=vala2V5PXZhbA==6b65793d76616c
Þ­¾ï (bytes)3q2+7w==deadbeef

Jak działa konwersja

Konwersja Base64 na szesnastkowy to proces dwuetapowy. Najpierw ciąg Base64 jest dekodowany do surowych bajtów: każdy znak jest mapowany na swoją 6-bitową wartość, bity są łączone i dzielone na 8-bitowe bajty (z pominięciem dopełnienia). Ten krok odwraca kodowanie zdefiniowane w RFC 4648 sekcja 4.

Następnie każdy bajt jest konwertowany na jego dwucyfrową reprezentację szesnastkową. Wartość bajtu 0-255 mapuje się na 00-ff. Bajt 0x4F (dziesiętnie 79) staje się dwoma znakami '4' i 'f'. Kompletny ciąg hex to po prostu złączenie wszystkich par dwuznakowych. Kierunek odwrotny (hex na Base64) stosuje te kroki w odwrotnej kolejności: parsuje pary hex na bajty, a następnie koduje wynik w Base64.

Binarny 4-bitowyCyfra hex
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010a
1011b
1100c
1101d
1110e
1111f

Przykłady kodu

Poniższe fragmenty kodu pokazują, jak konwertować między Base64 a hex w JavaScript, Python, Go i wierszu poleceń. Każdy przykład obejmuje oba kierunki konwersji.

JavaScript (browser / Node.js)
// Base64 to Hex
function base64ToHex(b64) {
  const raw = atob(b64)
  return Array.from(raw, c =>
    c.charCodeAt(0).toString(16).padStart(2, '0')
  ).join('')
}
base64ToHex('SGVsbG8=') // → "48656c6c6f"

// Hex to Base64
function hexToBase64(hex) {
  const bytes = hex.match(/.{1,2}/g).map(b => parseInt(b, 16))
  return btoa(String.fromCharCode(...bytes))
}
hexToBase64('48656c6c6f') // → "SGVsbG8="

// Node.js Buffer shorthand
Buffer.from('SGVsbG8=', 'base64').toString('hex')   // → "48656c6c6f"
Buffer.from('48656c6c6f', 'hex').toString('base64')  // → "SGVsbG8="
Python
import base64, binascii

# Base64 to Hex
b64_str = 'SGVsbG8='
raw_bytes = base64.b64decode(b64_str)
hex_str = raw_bytes.hex()            # → '48656c6c6f'
# or: binascii.hexlify(raw_bytes).decode()

# Hex to Base64
hex_str = '48656c6c6f'
raw_bytes = bytes.fromhex(hex_str)
b64_str = base64.b64encode(raw_bytes).decode()  # → 'SGVsbG8='

# One-liner for quick conversion
base64.b64encode(bytes.fromhex('deadbeef')).decode()  # → '3q2+7w=='
Go
package main

import (
    "encoding/base64"
    "encoding/hex"
    "fmt"
)

func main() {
    // Base64 to Hex
    raw, _ := base64.StdEncoding.DecodeString("SGVsbG8=")
    hexStr := hex.EncodeToString(raw)
    fmt.Println(hexStr) // → "48656c6c6f"

    // Hex to Base64
    raw2, _ := hex.DecodeString("48656c6c6f")
    b64Str := base64.StdEncoding.EncodeToString(raw2)
    fmt.Println(b64Str) // → "SGVsbG8="
}
CLI (bash)
# Base64 to Hex (using base64 + xxd)
echo -n 'SGVsbG8=' | base64 -d | xxd -p
# → 48656c6c6f

# Hex to Base64
echo -n '48656c6c6f' | xxd -r -p | base64
# → SGVsbG8=

# OpenSSL alternative
echo -n 'SGVsbG8=' | openssl base64 -d | xxd -p
# → 48656c6c6f

Często zadawane pytania

Czym różni się Base64 od szesnastkowego?
Base64 używa 64 znaków i koduje 6 bitów na znak, co daje około 33% narzutu rozmiaru względem surowych bajtów. Szesnastkowy używa 16 znaków i koduje 4 bity na znak, co daje 100% narzutu — dokładnie dwukrotność oryginalnego rozmiaru. Base64 jest bardziej kompaktowy; hex jest bardziej czytelny dla człowieka, ponieważ każdy bajt mapuje się na dokładnie dwa znaki.
Czy konwersja Base64 na hex jest stratna?
Nie. Zarówno Base64, jak i hex to deterministyczne, odwracalne kodowania tych samych bajtów. Konwersja między nimi nie zmienia, nie kompresuje ani nie szyfruje danych. Surowa sekwencja bajtów jest identyczna przed i po konwersji — zmienia się tylko tekstowa reprezentacja.
Dlaczego mój wynik hex jest dłuższy niż dane wejściowe Base64?
Hex zawsze generuje 2 znaki na bajt, podczas gdy Base64 generuje około 1,33 znaku na bajt. Wartość 20-bajtowa to 28 znaków Base64, ale 40 znaków hex. To nieodłączny kompromis: hex jest większy, ale każda granica bajtu jest od razu widoczna.
Czy mogę konwertować Base64url (Base64 bezpieczny dla URL) na hex?
Tak. Base64url zastępuje + przez - i / przez _ oraz pomija dopełnienie. To narzędzie automatycznie normalizuje dane wejściowe Base64url przed konwersją. W kodzie zamień - na + i _ na /, a następnie dodaj dopełnienie przed dekodowaniem: wynikowe bajty są identyczne ze standardowym Base64.
Jak skonwertować skrót SHA-256 z Base64 na hex?
Wklej skrót Base64 do tego narzędzia, aby uzyskać 64-znakowy ciąg hex. W kodzie: zdekoduj ciąg Base64 do bajtów (32 bajty dla SHA-256), a następnie zakoduj te bajty jako hex. Na przykład w Python: bytes.fromhex to operacja odwrotna — base64.b64decode(b64_hash).hex() daje reprezentację hex.
Co się dzieje, gdy dane wejściowe Base64 zawierają białe znaki lub znaki nowej linii?
Większość dekoderów Base64, w tym to narzędzie, usuwa białe znaki przed dekodowaniem. Certyfikaty kodowane w PEM i treści kodowane w MIME zazwyczaj zawijają Base64 co 64 lub 76 znaków w wierszu. Znaki nowej linii nie są częścią zakodowanych danych i są bezpiecznie ignorowane podczas konwersji.
Kiedy używać hex zamiast Base64?
Używaj hex, gdy potrzebujesz czytelności na poziomie bajtów — przy sprawdzaniu wyników kryptograficznych, debugowaniu protokołów binarnych lub określaniu wartości kolorów (#ff5733). Używaj Base64, gdy ważna jest kompaktowość — przy osadzaniu danych w JSON, przesyłaniu przez e-mail (MIME) lub tworzeniu data URI. Do przechowywania i przesyłania Base64 oszczędza około 33% miejsca w porównaniu z hex.