Codificatore/Decodificatore Base64

Un codificatore/decodificatore Base64 online gratuito per una rapida codifica e decodifica, dotato di gestione UTF-8 safe, conversione URL-safe, padding automatico, statistiche in tempo reale e funzione di copia sicura. Fornisce esempi di codice multilingue, generazione di Data URI, guide dettagliate all'uso e domande frequenti. Interfaccia intuitiva con riempimento bidirezionale dei campi, accessibilità da tastiera e design ottimizzato per dispositivi mobili. Nessun download richiesto, funziona direttamente nel tuo browser.

Codifica (Testo → Base64)

Decodifica (Base64 → Testo)

Come si usa

Base64 codifica i dati binari in ASCII per una trasmissione e un archiviazione sicure. La dimensione aumenta di circa il 33%.
Codifica: Converti testo semplice in Base64 per una trasmissione sicura.
Decodifica: Ripristina il testo originale da una stringa Base64.

Funzionalità

  • Sicuro con UTF-8: Gestisce correttamente i caratteri non ASCII (avvolto con encodeURIComponent/unescape).
  • Supporto URL-safe: Alternativa con un clic tra + / → - _, rimozione opzionale del padding =.
  • Pre-elaborazione prima della decodifica: Ignora gli spazi bianchi, converte automaticamente in formato URL-safe e aggiunge automaticamente il padding =.
  • Interazione in tempo reale: L'input viene elaborato istantaneamente, con visualizzazione delle statistiche su lunghezza e tasso di crescita.
  • Usabilità: Copia rapida, riempimento bidirezionale tra input, accessibile da tastiera, ottimizzato per dispositivi mobili.
  • Tema coerente: Nessuna classe Tailwind dark: — stile completo con temi DaisyUI.

Esempi rapidi

Testo originale:
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

Cos'è il Base64?

Base64 è un metodo per codificare dati binari in testo ASCII, comunemente usato per trasmettere immagini o contenuti di file tramite protocolli basati su testo come JSON, XML e HTTP.

Mappa ogni 3 byte in 4 caratteri stampabili, causando tipicamente un aumento di dimensione di circa il 33%.

Il Base64 standard utilizza A–Z, a–z, 0–9, +, / e il carattere di padding =; la variante URL-safe sostituisce + e / con - e _ per evitare problemi di escape negli URL.

Casi d'uso comuni

  • Incorpora immagini o piccoli file come Data URI.
  • Trasferisci dati binari tra client e server (ad es. testi cifrati, flussi compressi).
  • Converti il testo in un formato stampabile per evitare incongruenze di codifica o caratteri invisibili.

FAQ e note importanti

  • Set di caratteri: Negli ambienti web, codifica prima il testo in UTF-8 (questo strumento include automaticamente questo passaggio).
  • URL-safe: Per parametri o percorsi URL, preferisci la variante URL-safe e valuta la rimozione dei caratteri di padding.
  • Padding: Alcune implementazioni consentono di omettere =; durante la decodifica, aggiungi automaticamente il padding fino a un multiplo di 4 caratteri.
  • A capo: Il MIME Base64 può includere a capo; seleziona "Ignora spazi bianchi" durante la decodifica per gestirli.

Come codificare/decodificare Base64 nei linguaggi di programmazione

JavaScript
Testo → Base64 (sicuro UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// Sicuro per URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Decodifica (Base64 → Testo)
// Pre-elaborazione: sostituisci -_ con +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
Codifica (Testo → Base64)
$encoded = base64_encode($text);
// Sicuro per URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Decodifica (Base64 → Testo)
$b64 = strtr($input, '-_', '+/');
// Aggiungi automaticamente '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Codifica (Testo → Base64)
import base64

encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Codifica sicura per URL (rimuovi padding)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Decodifica (Base64 → Testo)
import base64

def b64_decode(s: str) -> str:
    s = s.replace('-','+').replace('_','/')
    s += '=' * (-len(s) % 4)  # Aggiungi automaticamente '='
    return base64.b64decode(s).decode('utf-8')
Go
Codifica (Testo → Base64)
import (
    "encoding/base64"
)

enc := base64.StdEncoding.EncodeToString([]byte(text))
// Codifica sicura per URL (senza padding)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Decodifica (Base64 → Testo)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// Decodifica sicura per URL (senza padding)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Codifica (Testo → Base64)
use base64::{engine::general_purpose, Engine as _};

let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Codifica sicura per URL (senza padding)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Decodifica (Base64 → Testo)
use base64::{engine::general_purpose, Engine as _};

let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();

let url_dec = String::from_utf8(
    general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
Dipendenza Cargo: base64 = "0.22"
Java
Codifica (Testo → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Codifica sicura per URL (senza padding)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Decodifica (Base64 → Testo)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);

Esempi di Data URI

Incorpora immagini o piccoli file come Data URI:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

Nota: evita di utilizzare Data URI per file di grandi dimensioni, poiché aumentano notevolmente le dimensioni di HTML/JSON e degradano le prestazioni.