Convertitore Base64 in Hex

Converti tra Base64 ed esadecimale

Base64

Hex

Esegue in locale · Sicuro per incollare segreti
Il risultato apparirà qui…
Base64 → Hex

Cos'è la conversione da Base64 a Hex?

La conversione da Base64 a hex trasforma i dati tra due schemi di codifica binario-testo molto diffusi. Base64 rappresenta i dati binari usando 64 caratteri ASCII (A-Z, a-z, 0-9, +, /), codificando ogni 3 byte come 4 caratteri. L'esadecimale rappresenta ogni byte come esattamente due caratteri di un alfabeto a 16 simboli (0-9, a-f). La conversione tra questi formati è un processo in due fasi: decodificare la stringa Base64 nei byte grezzi, poi ricodificare quei byte nel formato di destinazione.

La notazione esadecimale è la rappresentazione standard per i dati binari nella programmazione di basso livello, nella crittografia e nei protocolli di rete. Ogni carattere hex corrisponde direttamente a un nibble di 4 bit, rendendo semplice la lettura dei singoli valori di byte. Un hash SHA-256, ad esempio, viene quasi sempre visualizzato come una stringa hex di 64 caratteri. Base64, al contrario, è ottimizzato per la compattezza — lo stesso hash occupa solo 44 caratteri in Base64 — ed è la codifica standard per gli allegati email (MIME), i data URI e i payload API.

Entrambe le codifiche sono definite nell'RFC 4648. La conversione tra di esse è senza perdita: non vengono aggiunti o rimossi dati, cambia solo la rappresentazione testuale. Questo rende la conversione da Base64 a hex un'operazione routinaria per il debug di payload cifrati, l'ispezione delle impronte digitali dei certificati o la verifica degli hash su sistemi che usano formati di visualizzazione diversi.

Perché usare questo convertitore Base64 in Hex?

Questo strumento converte tra Base64 ed esadecimale direttamente nel browser. Nessun dato lascia il tuo computer e la conversione avviene in tempo reale mentre digiti.

Conversione istantanea
Incolla Base64 o hex e visualizza subito il risultato — senza round-trip verso un server. La modalità bidirezionale permette di cambiare direzione con un solo clic.
🔒
Elaborazione con privacy al primo posto
Tutta la conversione avviene localmente nel browser tramite JavaScript. Le tue chiavi crittografiche, gli hash e i token non vengono mai trasmessi in rete.
Modalità bidirezionale
Passa da Base64-a-hex a hex-a-Base64 con un singolo pulsante. Lo strumento rileva e gestisce sia le varianti Base64 standard che quelle URL-safe.
📋
Output pulito, pronto da incollare
L'output è hex in minuscolo senza delimitatori o prefissi — il formato atteso dalla maggior parte delle API, CLI e linguaggi di programmazione. Copialo con un clic.

Casi d'uso: Base64 in Hex

Frontend Developer
Converti le risposte API codificate in Base64 in hex durante il debug di protocolli binari, frame WebSocket o contenuti ArrayBuffer nella console DevTools del browser.
Backend Engineer
Traduci i digest hash Base64 provenienti da firme JWT o risposte HMAC in hex per confrontarli con i valori memorizzati in OpenSSL o nel database che usano la rappresentazione hex.
DevOps / SRE
Verifica le impronte digitali dei certificati TLS convertendo la chiave pubblica Base64 dai file PEM nel formato hex visualizzato dai browser e dagli strumenti di monitoraggio.
Security Analyst
Ispeziona chiavi di cifratura e vettori di inizializzazione (IV) che arrivano come Base64 nel traffico API — convertili in hex per l'analisi a livello di byte in Wireshark o CyberChef.
Data Engineer
Trasforma le colonne binarie codificate in Base64 da database (PostgreSQL bytea, MongoDB BinData) in hex per confronto, logging o script di migrazione.
Studente / Principiante
Comprendi la relazione tra Base64 ed esadecimale vedendo come gli stessi byte vengono rappresentati in ciascun formato, rafforzando i fondamenti della codifica.

Base64 vs codifica esadecimale

Base64 ed esadecimale convertono entrambi i dati binari in testo stampabile, ma fanno scelte diverse tra compattezza e leggibilità. La tabella seguente riassume le differenze principali.

ProprietàBase64Hexadecimal
AlfabetoA-Z a-z 0-9 + / =0-9 a-f
Bit per carattere64
Sovraccarico dimensionale~33% più grande del raw100% più grande del raw
LeggibilitàCompatto ma opacoOgni byte visibile come 2 caratteri
Uso principaleEmail, data URI, APIHash crittografici, indirizzi MAC, colori
SpecificaRFC 4648IEEE 754, RFC 4648 sec 8

Esempi di conversione

La tabella seguente mostra sequenze di byte identiche nelle loro rappresentazioni Base64 ed esadecimale. Nota che l'output hex è sempre esattamente il doppio del numero di byte, mentre la lunghezza Base64 è uguale a ceil(byteCount / 3) * 4.

Input (testo / byte)Base64Hex
HelloSGVsbG8=48656c6c6f
ABQUI=4142
0xFFMHhGRg==30784646
AAE=0001
key=vala2V5PXZhbA==6b65793d76616c
Þ­¾ï (bytes)3q2+7w==deadbeef

Come funziona la conversione

La conversione da Base64 a esadecimale è un processo in due fasi. Prima, la stringa Base64 viene decodificata in byte grezzi mappando ogni carattere al suo valore a 6 bit, concatenando i bit e suddividendoli in byte a 8 bit (scartando il padding). Questo passaggio inverte la codifica definita nell'RFC 4648 Sezione 4.

Nella seconda fase, ogni byte viene convertito nella sua rappresentazione esadecimale a due cifre. Il valore del byte 0-255 viene mappato su 00-ff. Un byte come 0x4F (decimale 79) diventa i due caratteri '4' e 'f'. La stringa hex completa è semplicemente la concatenazione di tutte le coppie di due caratteri. La direzione inversa (hex a Base64) applica questi passaggi in ordine inverso: analizza le coppie hex come byte, poi codifica il risultato in Base64.

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

Esempi di codice

Questi snippet eseguibili mostrano come convertire tra Base64 e hex in JavaScript, Python, Go e da riga di comando. Ogni esempio copre entrambe le direzioni di conversione.

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

Domande frequenti

Qual è la differenza tra Base64 ed esadecimale?
Base64 usa 64 caratteri e codifica 6 bit per carattere, con un sovraccarico dimensionale di circa il 33% rispetto ai byte grezzi. L'esadecimale usa 16 caratteri e codifica 4 bit per carattere, con un sovraccarico del 100% — esattamente il doppio della dimensione originale. Base64 è più compatto; hex è più leggibile dall'uomo perché ogni byte corrisponde esattamente a due caratteri.
La conversione da Base64 a hex è con perdita?
No. Sia Base64 che hex sono codifiche deterministiche e reversibili degli stessi byte sottostanti. La conversione tra di essi non altera, comprime o cifra i dati. La sequenza di byte grezzi è identica prima e dopo la conversione — cambia solo la rappresentazione testuale.
Perché l'output hex è più lungo dell'input Base64?
Hex produce sempre 2 caratteri per byte, mentre Base64 produce circa 1,33 caratteri per byte. Un valore di 20 byte corrisponde a 28 caratteri Base64 ma a 40 caratteri hex. Questo è il compromesso intrinseco: hex è più grande ma ogni confine di byte è immediatamente visibile.
Posso convertire Base64url (Base64 URL-safe) in hex?
Sì. Base64url sostituisce + con - e / con _ e omette il padding. Questo strumento normalizza automaticamente l'input Base64url prima della conversione. Nel codice, sostituisci - con + e _ con / poi aggiungi il padding prima di decodificare: i byte risultanti sono identici al Base64 standard.
Come converto un hash SHA-256 da Base64 a hex?
Incolla l'hash Base64 in questo strumento per ottenere la stringa hex di 64 caratteri. Nel codice: decodifica la stringa Base64 in byte (32 byte per SHA-256), poi codifica quei byte in hex. Ad esempio, in Python: bytes.fromhex è l'inverso — base64.b64decode(b64_hash).hex() restituisce la rappresentazione hex.
Cosa succede se l'input Base64 contiene spazi o a capo?
La maggior parte dei decoder Base64, incluso questo strumento, rimuove gli spazi prima della decodifica. I certificati in formato PEM e i contenuti MIME tipicamente suddividono il Base64 a 64 o 76 caratteri per riga. Le interruzioni di riga non fanno parte dei dati codificati e vengono tranquillamente ignorate durante la conversione.
Quando dovrei usare hex invece di Base64?
Usa hex quando hai bisogno di leggibilità a livello di byte — per ispezionare output crittografici, fare il debug di protocolli binari o specificare valori di colore (#ff5733). Usa Base64 quando la compattezza è importante — per incorporare dati in JSON, trasmettere via email (MIME) o costruire data URI. Per archiviazione e trasmissione, Base64 risparmia circa il 33% di spazio rispetto a hex.