toooly-box

Codificatore Base64

Scrivi o incolla un testo e ottieni la sua codifica Base64. Compatibile con UTF-8, emoji comprese.

elaborazione locale
Base64
Il tuo testo
Base64

Che cos'è la codifica Base64?

Il Base64 è un modo di scrivere byte qualsiasi usando solo 64 caratteri che sopravvivono al trattamento come testo: dalla A alla Z, dalla a alla z, da 0 a 9, più e barra. Fa crescere i dati di circa un terzo. È una codifica, non una cifratura: chiunque la può invertire, senza chiave.

Come funziona

Base64 riscrive byte qualsiasi usando 64 caratteri stampabili, così i dati attraversano canali che accettano solo testo: un URL, un’intestazione email, un campo JSON.

Il testo viene prima convertito in byte UTF-8 e solo dopo codificato. È il passaggio che molte implementazioni saltano, ed è il motivo per cui si rompono con accenti ed emoji.

La codifica non è cifratura: chiunque può decodificare Base64 in un istante, quindi non usarla per nascondere un segreto.

Che cos'è la codifica Base64

Base64 è un modo di scrivere byte qualsiasi usando solo 64 caratteri che sopravvivono al trattamento come testo: A–Z, a–z, 0–9, più e barra, con l'uguale come riempimento. Esiste perché moltissimi canali sono stati progettati per il testo e rovinano tutto il resto: un'intestazione email, la query string di un URL, un campo JSON, un attributo XML, un cookie, il valore di un secret Kubernetes. Se i byte vengono codificati prima, arrivano intatti.

Il prezzo è la dimensione. Tre byte diventano quattro caratteri, quindi una stringa Base64 è circa il 33% più grande dei dati che trasporta, riempimento escluso. È lo scambio: paghi un terzo di banda in più per passare in un tubo di solo testo senza corruzioni.

Come codificare testo in Base64 qui

  • Scrivi, incolla o apri un file il codificatore lavora su quello che c'è nel riquadro di input, e Apri file legge un file di testo dal disco. Tutto resta sul tuo computer.
  • Scegli «Per URL» se il risultato finisce in un URL il Base64 standard usa + e /, che dentro una query string o un percorso significano altro. Il Base64 per URL (RFC 4648 §5, detto anche base64url) li sostituisce con - e _ e toglie il riempimento: è quello che usano i JWT, i parametri state di OAuth e i data URL dentro una query.
  • Copia o scarica Copia prende la stringa; Scarica la salva come file .txt. Rimanda su scambia i riquadri, così decodifichi subito quello che hai appena codificato e verifichi il giro completo.

Accenti, emoji e il passaggio UTF-8

Base64 codifica byte, non caratteri: prima di poter codificare qualsiasi cosa il testo va trasformato in byte, e quali byte dipende dalla codifica dei caratteri. Questo strumento converte il testo in UTF-8, che è il valore predefinito moderno e l'unica scelta sensata per qualcosa che deve viaggiare.

Saltare quel passaggio è il bug classico. Un'implementazione ingenua che usa un byte per carattere funziona fino alla prima lettera accentata, poi produce una stringa che si decodifica in caratteri illeggibili o non si decodifica affatto. Se hai visto «perché» tornare come «perché», hai visto i due capi di un tubo in disaccordo sulla codifica. Il testo codificato qui fa il giro completo correttamente con accenti, greco, cirillico, CJK ed emoji.

Base64 non è cifratura

Vale la pena dirlo chiaramente, perché l'errore è frequente e costoso. Base64 è una codifica: è completamente reversibile da chiunque, senza chiave, in una frazione di secondo, anche da questa pagina. Una stringa Base64 dentro una richiesta sembra opaca a chi scorre un log, ed è proprio questo che la rende pericolosa, perché non è opaca per chi pensa di incollarla in un decodificatore.

Quindi non usare mai Base64 per nascondere una password, una chiave API o dati personali. Un secret di Kubernetes è memorizzato in Base64 per ragioni di trasporto, non di protezione; l'autenticazione HTTP Basic invia le credenziali in Base64, ed è per questo che è accettabile solo su HTTPS. Se il contenuto deve essere illeggibile, ti serve la cifratura, e probabilmente un gestore di chiavi.

Dove lo incontrerai

  • Data URL data:image/png;base64,… incorpora un'immagine o un font piccoli direttamente in HTML o CSS: risparmia una richiesta al prezzo di un terzo di byte in più e di nessuna cache propria.
  • JWT intestazione e payload di un JSON Web Token sono JSON codificato in base64url, separati da punti. Decodificarne uno mostra i claim, ed è un buon promemoria: il payload di un JWT è leggibile da chi lo possiede.
  • Allegati email MIME trasporta allegati binari in Base64 dal 1992, ed è il motivo per cui una foto da 3 MB produce un'email da 4 MB.
  • Basic auth e token API l'intestazione Authorization trasporta base64(utente:password), e diverse API si aspettano una chiave codificata in Base64.

Domande frequenti

Base64 protegge i miei dati?

No. Base64 è una codifica, non una cifratura: chiunque può invertirla in un secondo. Serve a trasportare dati in canali di solo testo, mai a tenere nascosto qualcosa.

Perché il testo accentato risulta sbagliato altrove?

Perché è stato codificato byte per byte invece che come UTF-8. Questo strumento converte prima in UTF-8, quindi accenti, alfabeti non latini ed emoji restano corretti.