Codificatore di File Base64

Codifica qualsiasi file in Base64 — PDF, ZIP, immagini e altro

Trascina qualsiasi file qui o fai clic per caricare

Qualsiasi tipo di file — PDF, ZIP, immagini, file binari

Che cos'è la Codificazione di File Base64?

La codificazione di file Base64 converte file binari — PDF, ZIP, immagini, eseguibili, caratteri, audio — in testo ASCII semplice usando l'alfabeto definito in RFC 4648. Ogni tre byte di input binario diventano quattro caratteri Base64, producendo una rappresentazione testuale che può viaggiare attraverso canali progettati esclusivamente per il testo: payload API JSON, documenti XML, corpi di email, attributi HTML e variabili di ambiente.

A differenza della codificazione testo-verso-Base64 (che funziona su stringhe), la codificazione file-verso-Base64 legge il flusso di byte grezzo di qualsiasi file indipendentemente dal suo formato. Gli header binari di un PDF, i blocchi compressi di un ZIP e i dati dei pixel di un PNG vengono tutti trattati in modo identico: come una sequenza di ottetti da ricodificare. Il risultato è sempre ASCII valido, sicuro da incorporare ovunque vengono accettati i caratteri stampabili.

Il compromesso è la dimensione: l'output Base64 è circa il 33% più grande del binario originale. Per un PDF da 1 MB, questo significa circa 1,33 MB di testo Base64. Questo overhead è intrinseco alla codificazione e nessuna implementazione può evitarlo. Nonostante ciò, la codificazione di file Base64 rimane il metodo standard per incorporare dati binari in formati solo testo, specificato in MIME (RFC 2045), URI di dati (RFC 2397) e JSON Web Tokens (RFC 7519).

Perché Utilizzare questo Codificatore di File Base64?

Questo strumento codifica i file in Base64 direttamente nel tuo browser usando l'API FileReader. Nessun file viene caricato su un server — l'intera conversione avviene lato client in JavaScript.

🛡
Elaborazione Focalizzata sulla Privacy
Il tuo file non lascia mai il tuo dispositivo. L'API FileReader legge il file in memoria localmente, e l'output Base64 viene generato completamente nel browser. Nessuna richiesta di rete viene effettuata.
Trascinamento e Rilascio Istantaneo
Trascina qualsiasi file sullo strumento e vedi l'output Base64 immediatamente. Nessuna attesa di caricamento, nessuna barra di avanzamento, nessun limite di dimensione file imposto da un server.
📁
Qualsiasi Formato di File
Codifica PDF, ZIP, immagini, caratteri, file audio, moduli WebAssembly o qualsiasi altro formato binario. Il codificatore tratta tutti i file come flussi di byte grezzi — il formato non importa.
🔒
Nessun Account Richiesto
Usa lo strumento immediatamente senza registrazione, accesso o accettazione di cookie. L'output è pronto per copiare o scaricare come file .b64.txt con un solo clic.

Casi d'Uso della Codificazione di File Base64

Sviluppatore Frontend
Incorpora piccole icone, caratteri o SVG direttamente in CSS o HTML come URI di dati per eliminare richieste HTTP aggiuntive. Un'icona di 2 KB inline come Base64 risparmia un viaggio di rete che aggiungerebbe 50-200 ms di latenza.
Ingegnere Backend
Includi allegati di file nei payload API JSON quando il protocollo di trasporto non supporta caricamenti multipart. Codifica PDF, rapporti o documenti firmati prima di inviarli come campi stringa nelle risposte REST o GraphQL.
DevOps / Infrastruttura
Archivia file di configurazione binari (certificati TLS, chiavi SSH, file di licenza) come stringhe Base64 in variabili di ambiente, Kubernetes Secrets o tfvars di Terraform dove i valori binari grezzi non sono consentiti.
QA / Ingegnere di Test
Genera fixture di file Base64 per test automatizzati che verificano endpoint di caricamento, gestione degli allegati di posta o pipeline di elaborazione di documenti senza gestire file di test binari nel controllo di versione.
Ingegnere dei Dati
Serializza blob binari (metadati Parquet, schemi Protobuf, piccoli asset binari) in Base64 per l'archiviazione in cataloghi di dati basati su JSON, archivi di configurazione o script di migrazione.
Studente / Studioso
Osserva come i file binari diventano testo codificando file piccoli e ispezionando l'output. Confronta la lunghezza Base64 con la dimensione del file originale per verificare l'overhead del 33% descritto in RFC 4648.

Overhead della Dimensione del File Base64

La codificazione Base64 aumenta la dimensione dei dati esattamente di un terzo. Ogni 3 byte di input producono 4 caratteri di output (ognuno rappresentante 6 bit). I caratteri di padding (=) vengono aggiunti quando la lunghezza di input non è un multiplo di 3. La tabella sottostante mostra la relazione tra la dimensione del file originale e la dimensione dell'output codificato.

Dimensione del FileByte GrezziByte Base64Overhead
1 KB1,024 B1,368 B+33.3%
10 KB10,240 B13,656 B+33.4%
100 KB102,400 B136,536 B+33.3%
1 MB1,048,576 B1,398,104 B+33.3%
5 MB5,242,880 B6,990,508 B+33.3%
10 MB10,485,760 B13,981,016 B+33.3%

Riferimento dell'URI di Dati e Tipo MIME

Un URI di dati incorpora il contenuto del file direttamente in HTML, CSS o JavaScript usando il formato data:[tipo MIME];base64,[dati codificati]. Il tipo MIME dice al browser come interpretare i byte decodificati. Di seguito sono le estensioni di file comuni, i loro tipi MIME e il prefisso URI di dati corrispondente.

EstensioneTipo MIMEPrefisso URI di Dati
.pdfapplication/pdfdata:application/pdf;base64,...
.zipapplication/zipdata:application/zip;base64,...
.pngimage/pngdata:image/png;base64,...
.jpgimage/jpegdata:image/jpeg;base64,...
.gifimage/gifdata:image/gif;base64,...
.svgimage/svg+xmldata:image/svg+xml;base64,...
.woff2font/woff2data:font/woff2;base64,...
.mp3audio/mpegdata:audio/mpeg;base64,...
.wasmapplication/wasmdata:application/wasm;base64,...
.binapplication/octet-streamdata:application/octet-stream;base64,...

Esempi di Codice

Questi esempi eseguibili mostrano come leggere un file binario e codificarlo in Base64 in JavaScript, Python, Node.js, bash e Go. Ogni frammento produce Base64 standard (RFC 4648 Sezione 4) con padding.

JavaScript (browser)
// Read a file from an <input> element and encode to Base64
const input = document.querySelector('input[type="file"]')
input.addEventListener('change', (e) => {
  const file = e.target.files[0]
  const reader = new FileReader()
  reader.onload = () => {
    const base64 = reader.result.split(',')[1]
    console.log(base64) // → "JVBERi0xLjQK..." (raw Base64, no data URI prefix)
  }
  reader.readAsDataURL(file)
})

// Convert a Blob to Base64 with async/await
async function blobToBase64(blob) {
  const buffer = await blob.arrayBuffer()
  const bytes = new Uint8Array(buffer)
  let binary = ''
  bytes.forEach(b => binary += String.fromCharCode(b))
  return btoa(binary) // → standard Base64 string
}
Python
import base64
from pathlib import Path

# Encode a file to Base64
file_bytes = Path('document.pdf').read_bytes()
encoded = base64.b64encode(file_bytes).decode('ascii')
print(encoded[:40])  # → "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PA..."

# Write encoded output to a text file
Path('document.b64.txt').write_text(encoded)

# Build a data URI from a file
mime_type = 'application/pdf'
data_uri = f'data:{mime_type};base64,{encoded}'
print(data_uri[:60])  # → "data:application/pdf;base64,JVBERi0xLj..."
Node.js
import { readFileSync, writeFileSync } from 'fs'

// Encode a file to Base64
const buffer = readFileSync('archive.zip')
const base64 = buffer.toString('base64')
console.log(base64.length) // → 1398104 (for a ~1 MB file)

// Save Base64 output to a file
writeFileSync('archive.b64.txt', base64)

// Build a data URI
const mime = 'application/zip'
const dataUri = `data:${mime};base64,${base64}`
CLI (bash)
# Encode a file to Base64 (macOS / Linux)
base64 < document.pdf > document.b64.txt

# Encode with no line wrapping (GNU coreutils)
base64 -w 0 < document.pdf > document.b64.txt

# Encode and copy to clipboard (macOS)
base64 < image.png | pbcopy

# Encode with OpenSSL (available everywhere)
openssl base64 -in archive.zip -out archive.b64.txt

# Pipe directly into curl for API upload
base64 -w 0 < photo.jpg | curl -X POST -d @- https://api.example.com/upload
Go
package main

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

func main() {
	data, err := os.ReadFile("document.pdf")
	if err != nil {
		panic(err)
	}
	encoded := base64.StdEncoding.EncodeToString(data)
	fmt.Println(len(encoded)) // → 1398104 (for a ~1 MB file)

	// Write to file
	os.WriteFile("document.b64.txt", []byte(encoded), 0644)
}

Domande Frequenti

Qual è la dimensione massima del file che posso codificare in Base64?
Questo strumento è eseguito interamente nel tuo browser, quindi il limite dipende dalla memoria disponibile. I browser moderni gestiscono file fino a 50-100 MB senza problemi. Per file più grandi, usa uno strumento da riga di comando come base64 (macOS/Linux) o il modulo base64 di Python, che elaborano il file in chunk e non caricano l'intero output in memoria in una volta.
Quanto più grande è l'output Base64 rispetto al file originale?
L'output Base64 è sempre circa il 33,3% più grande dell'input. Nello specifico, la formula è ceil(n / 3) * 4, dove n è il numero di byte di input. Un file da 1 MB produce circa 1,33 MB di testo Base64. Questo overhead è intrinseco alla codificazione e non può essere ridotto.
Posso codificare un file in Base64 e usarlo come URI di dati?
Sì. Anteponi il prefisso del tipo MIME alla stringa Base64: data:application/pdf;base64, seguito dal contenuto codificato. I browser decodificheranno e renderizzeranno l'URI di dati come un file normale. Gli URI di dati funzionano in img src, link href, CSS url() e attributi di download anchor.
La codificazione di file Base64 è la stessa cosa della crittografia?
No. Base64 è una codificazione, non una crittografia. Trasforma i dati binari in una rappresentazione testuale banalmente reversibile — chiunque abbia un decodificatore Base64 può recuperare il file originale. Base64 non fornisce riservatezza, integrità o autenticazione. Se devi proteggere il contenuto del file, crittografa prima il file (ad esempio con AES-256-GCM), quindi codifica il testo cifrato in Base64 per il trasporto.
Perché la mia stringa Base64 termina con uno o due caratteri =?
I caratteri = sono padding. Base64 elabora l'input in gruppi di 3 byte, producendo 4 caratteri di output per gruppo. Quando la dimensione del file non è un multiplo di 3, uno o due caratteri di padding vengono aggiunti affinché la lunghezza dell'output sia sempre un multiplo di 4. Un = significa che l'ultimo gruppo aveva 2 byte; due == significa che l'ultimo gruppo aveva 1 byte.
Come codifico un file in Base64 da riga di comando?
Su macOS e Linux, usa il comando base64: base64 < file.pdf > file.b64.txt. Su GNU/Linux, aggiungi -w 0 per sopprimere l'avvolgimento di linea. Puoi anche usare OpenSSL: openssl base64 -in file.pdf -out file.b64.txt. Su Windows PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf')).
Quando devo usare la codificazione di file Base64 invece di multipart/form-data?
Usa Base64 quando il trasporto richiede un formato solo testo — API JSON, XML-RPC, variabili di ambiente o Kubernetes Secrets. Usa multipart/form-data quando carichi file tramite moduli HTML o endpoint REST che supportano flussi binari. Multipart è più efficiente perché evita l'overhead di dimensione del 33%, ma richiede che il server analizzi i limiti multipart.