logo
GeekFormat

Codifica Base64

Testo input
0 caratteri

Strumento gratuito di codifica e decodifica Base64 online. Supporta set di caratteri UTF-8/ASCII/ISO-8859-1, con tre varianti: Standard, URL-Safe e MIME. Mostra il tasso di espansione del volume in tempo reale e le interruzioni di riga MIME sono conformi allo standard RFC 2045.

Raccomandazioni correlate

Casi d'uso

  • Debug JWT: decodifica i segmenti header e payload del JWT (formato Base64URL) per visualizzare il contenuto delle dichiarazioni del Token
  • Basic Auth: codifica username:password come credenziali di autenticazione HTTP Basic
  • Sviluppo OAuth: genera code_verifier o verifica code_challenge negli scenari PKCE
  • Debug API: codifica dati JSON o decodifica il contenuto dei campi Base64 restituiti dall'API
  • Incorporamento immagini Data URI: converte piccole icone nel formato data:image/...;base64,... per incorporarle in CSS/HTML
  • Codifica allegati e-mail: codifica allegati binari e-mail nel formato MIME Base64

Funzionalità

  • Commutazione Encode/Decode con un clic: passa liberamente tra le modalità di codifica e decodifica, l'output diventa direttamente input per supportare l'elaborazione ciclica
  • Supporto per tre set di caratteri: UTF-8 (cinese/giapponese/emoji), ASCII, ISO-8859-1, copertura professionale per più scenari
  • Output di tre varianti: Standard (standard), URL-Safe (sicuro per JWT/OAuth/PKCE), MIME (standard RFC 2045 con interruzioni di 76 caratteri)
  • Statistiche volume in tempo reale: mostra il numero di caratteri di input/output e il tasso di espansione in tempo reale (Base64 aumenta il volume di circa il 33%)
  • Messaggi di errore amichevoli: quando i caratteri sono fuori intervallo, mostra informazioni di errore specifiche invece di un semplice errore
  • Divisore trascinabile: su PC è possibile regolare il rapporto delle aree di modifica sinistra e destra per concentrarsi sull'attività corrente
  • Tab indipendenti per dispositivi mobili: gli utenti di telefono/tablet passano indipendentemente tra l'area di input e output per un'esperienza fluida

Come utilizzare

  1. Seleziona la modalità: fai clic su Encode (codifica) o Decode (decodifica) per cambiare la direzione di elaborazione
  2. Seleziona la variante: Standard (standard), URL-Safe (JWT/OAuth), MIME (formato e-mail con interruzioni di 76 caratteri)
  3. Inserisci il contenuto: incolla il testo o la stringa Base64, verrà elaborato automaticamente in tempo reale
  4. Visualizza le statistiche: nella parte inferiore vengono visualizzati il numero di caratteri e il tasso di espansione del volume (la codifica aumenta il volume di circa il 33%)
  5. Copia il risultato: copia con un clic la stringa Base64 o il testo decodificato

Domande frequenti

La codifica Base64 è la stessa cosa della crittografia?

No. Base64 converte solo il testo in un'altra forma di rappresentazione reversibile; chiunque può decodificarlo nuovamente nel testo originale. Se si tratta di dati sensibili (password, token), utilizzare un vero schema di crittografia come AES. Base64 è adatto solo per la conversione del formato dei dati, facilitando la trasmissione di dati binari attraverso sistemi testuali.

Strumento di crittografia AES

Di quanto aumenta il volume dopo la codifica Base64?

La codifica Base64 aumenta il volume dei dati originali di circa il 33%. Ciò è dovuto al fatto che ogni 3 byte (24 bit) vengono codificati in 4 caratteri Base64. Ad esempio, un testo di 100 byte sarà di circa 133 byte dopo la codifica. La parte inferiore dello strumento mostra il tasso di espansione in tempo reale per valutare la dimensione dei dati. Esempio: `Hello` → `SGVsbG8=` (volume +33%).

Strumento statistiche Base64

Qual è la differenza tra le tre varianti: Standard, URL-Safe e MIME?

Standard è il Base64 standard che utilizza i caratteri A-Z, a-z, 0-9, +, /. URL-Safe sostituisce +/ con -_, rendendolo adatto per parametri URL e token JWT. MIME inserisce interruzioni di riga ogni 76 caratteri, conforme allo standard di trasmissione e-mail RFC 2045, adatto per allegati e-mail e testo multilinea.

URL-Safe Base64MIME Base64

Come decodificare l'header o il payload di un JWT?

JWT utilizza la codifica Base64URL (variante URL-Safe). Dopo aver selezionato la modalità URL-Safe, è sufficiente incollare il primo segmento (header) o il secondo segmento (payload) del JWT per decodificarlo. Si noti che il terzo segmento del JWT è la firma e non deve essere decodificato o verificato qui.

Strumento JWT

Cos'è il Padding (riempimento) di Base64?

La lunghezza del risultato della codifica Base64 deve essere un multiplo di 4. Quando la lunghezza dell'input non è un multiplo di 3, viene riempita con il carattere =. La variante URL-Safe non utilizza il padding. Lo strumento gestisce automaticamente il padding e rimuove automaticamente anche i caratteri = durante la decodifica.

Strumento Padding Base64

Perché btoa e atob in JavaScript non supportano il cinese?

btoa e atob sono API native del browser che operano con il set di caratteri Latin-1 (ISO-8859-1), dove ogni carattere occupa 1 byte. I caratteri cinesi occupano 3 byte in UTF-8, quindi passarli direttamente causerà un errore. La soluzione è utilizzare prima encodeURIComponent per convertire il cinese nel formato %xx della sequenza di byte UTF-8, quindi utilizzare unescape per convertirlo in una stringa Latin-1 e infine utilizzare btoa per codificare.

Cos'è il Data URI Scheme? Come incorporare immagini con Base64?

Data URI è un formato URI che consente di incorporare dati direttamente in un URL, con la sintassi: `data:[<mediatype>][;base64],<data>`. Ad esempio: `data:image/png;base64,iVBORw0KGgo...`. Viene spesso utilizzato per incorporare icone piccole, immagini di sfondo CSS ecc., riducendo il numero di richieste HTTP. Ma Base64 aumenta il volume del 33%, quindi è adatto solo per file piccoli; i file di grandi dimensioni devono utilizzare URL normali.

Strumento Data URIBase64 in immagine

Cos'è la codifica Base64?

Base64 è uno schema di codifica binario-testo basato su 64 caratteri ASCII stampabili, definito per la prima volta dalla RFC 2045 (standard MIME). Base64 converte ogni 3 byte (24 bit) in 4 caratteri Base64 (A-Z, a-z, 0-9, +, /), consentendo ai dati binari di essere trasmessi in modo sicuro attraverso sistemi che supportano solo testo, come intestazioni HTTP, payload JSON, documenti XML o parametri di query URL.

**Base64 non è crittografia**, fornisce solo la conversione del formato dei dati, chiunque può decodificarlo facilmente. Se è necessario proteggere dati sensibili, utilizzare un vero schema di crittografia come AES. Gli usi tipici di Base64 includono: HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), segmenti header e payload di token JWT (formato Base64URL), Data URI (`data:image/png;base64,...`), codifica MIME di allegati e-mail ecc.

**URL-Safe Base64** (RFC 4648 §5) sostituisce i +/ del Base64 standard con -_ e generalmente omette il padding =. Ciò consente al risultato codificato di apparire in modo sicuro in URL, percorsi di file o campi JSON. I token JWT, il code_verifier di OAuth PKCE e AWS Signature V4 utilizzano tutti la codifica URL-Safe Base64.

**L'interruzione di riga MIME** è uno standard RFC 2045 che specifica che ogni riga non deve superare i 76 caratteri. Quando il contenuto Base64 viene utilizzato in e-mail o in determinati scenari che richiedono la visualizzazione con interruzioni di riga, la variante MIME inserisce automaticamente caratteri di interruzione di riga (`\n`) ogni 76 caratteri. Questo è il formato standard per la trasmissione di allegati e-mail.

Lo strumento utilizza le **API native btoa/atob** del browser, combinate con una logica di elaborazione sicura per UTF-8, garantendo che i caratteri multibyte come cinese, giapponese ed emoji siano codificati correttamente. Tutti i calcoli vengono completati localmente, i dati non vengono inviati a nessun server. Aprire il pannello di rete degli strumenti per sviluppatori del browser per verificare che non ci siano richieste esterne durante tutto il processo.

术语表

RFC 4648
Standard ufficiale per la codifica Base16/Base32/Base64 pubblicato dall'IETF. Definisce due alfabeti: Base64 standard e Base64 URL-Safe, nonché regole per padding, interruzioni di riga, gestione di caratteri non alfabetici ecc. È l'attuale standard de facto per la codifica Base64, sostituendo la precedente RFC 3548.Strumento URL-Safe Base64Strumento Padding Base64
RFC 2045 (MIME)
Standard Multipurpose Internet Mail Extensions (MIME). È stato il primo ad adottare Base64 come metodo di codifica della trasmissione del contenuto e-mail. Stabilisce che la codifica Base64 non deve superare i 76 caratteri per riga ed è separata da CRLF, nota come variante MIME Base64.Strumento MIME Base64
Base64URL (URL-Safe Base64)
Variante sicura per URL definita nella RFC 4648 §5. Sostituisce il + del Base64 standard con - e il / con _, e generalmente omette il carattere di padding =. È ampiamente utilizzata in scenari come token JWT, OAuth PKCE, parametri URL e nomi di file.Strumento URL-Safe Base64Strumento JWT
MIME Base64
Variante Base64 conforme allo standard RFC 2045, che inserisce un carattere di interruzione di riga (CRLF) ogni 76 caratteri. Viene utilizzata principalmente per la trasmissione di allegati e-mail, perché il protocollo SMTP precedente aveva limiti sulla lunghezza di una singola riga.Strumento MIME Base64
Padding (riempimento)
La lunghezza del risultato della codifica Base64 deve essere un multiplo di 4. Quando il numero di byte di input non è un multiplo di 3, la fine viene riempita con il carattere =. Il Base64 standard utilizza il padding, Base64URL generalmente lo omette.Strumento Padding Base64
Alfabeto Base64
L'insieme di 64 caratteri utilizzati nella codifica Base64. L'alfabeto Base64 standard è: A-Z (26), a-z (26), 0-9 (10), +, /, per un totale di 64 caratteri, più il carattere di riempimento =.
btoa / atob
API native del browser per la codifica/decodifica Base64. btoa (binary to ASCII) viene utilizzato per codificare, atob (ASCII to binary) per decodificare. Si noti che queste API supportano solo il set di caratteri Latin-1. Per elaborare il cinese, è necessario combinarle con la transcodifica UTF-8.
Data URI Scheme
Un formato URI che consente di incorporare piccoli file direttamente in un URL, nel formato data:[<mediatype>][;base64],<data>. Viene spesso utilizzato per incorporare icone piccole e immagini di sfondo CSS per ridurre le richieste HTTP.Strumento Data URIBase64 in immagine
HTTP Basic Authentication
Un metodo di autenticazione nel protocollo HTTP. Il nome utente e la password vengono concatenati con due punti, codificati in Base64 e trasmessi nell'intestazione della richiesta Authorization. Il formato è: Authorization: Basic <base64(username:password)>.Costruttore intestazioni Auth
Tasso di espansione Base64
La proporzione in cui il volume dei dati aumenta dopo la codifica Base64. Ogni 3 byte (24 bit) vengono codificati in 4 caratteri Base64, quindi il volume aumenta di circa il 33% (4/3 ≈ 1,333). Con il padding, il tasso di espansione è leggermente superiore.

Confronto delle tre varianti di Base64

CaratteristicaStandardURL-SafeMIME
Caratteri speciali+ /- _+ /
Padding(=)UsatoGeneralmente omessoUsato
Interruzioni di rigaNessunaNessunaInterruzione ogni 76 caratteri
StandardRFC 4648 §4RFC 4648 §5RFC 2045
Casi tipiciData URI, codifica generaleJWT, parametri URL, nomi di fileAllegati e-mail, trasmissione SMTP

Tabella comparativa delle codifiche della serie Base

CodificaNum. caratteriCaratteristiche del set di caratteriEspansione volumeUso tipico
Base16 (Hex)160-9, A-F100%Debug, visualizzazione hash
Base3232A-Z, 2-7(maiuscole senza confusione)60%DNS, chiavi TOTP, codici QR
Base5858Esclude caratteri confondibili 0/O/I/l38%Indirizzi Bitcoin, criptovalute
Base6262A-Z, a-z, 0-934%Abbreviatori URL, codifica ID
Base6464A-Z, a-z, 0-9, +, /33%Data URI, MIME, JWT(variante URL-Safe)

Code Examples

Codifica Base64 in JavaScript (supporta cinese UTF-8)

// 编码(支持 UTF-8 中文)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// 解码(支持 UTF-8 中文)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// URL-Safe 编码(用于 JWT / OAuth)
function b64UrlEncode(str) {
  return btoa(unescape(encodeURIComponent(str)))
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=+$/, '');
}

console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界

Codifica Base64 in Python

import base64

# Standard 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode())  # SGVsbG8g5LiW55WM

# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode())  # SGVsbG8g5LiW55WM(无 padding 需手动去除)

# 去除 padding(JWT 标准做法)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)

Codifica Base64 in Java

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Example {
    public static void main(String[] args) {
        String text = "Hello 世界";

        // Standard 编码
        String encoded = Base64.getEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded); // SGVsbG8g5LiW55WM

        // Standard 解码
        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded); // Hello 世界

        // URL-Safe 编码(用于 JWT / URL)
        String urlSafe = Base64.getUrlEncoder().withoutPadding()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(urlSafe);

        // MIME 编码(76字符换行)
        String mime = Base64.getMimeEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }
}

Authoritative References