Base64 Encode Decode: esempi di comandi per Windows, Linux e Mac

Codifica e decodifica file in Base64 su Windows, Linux e Mac.

Indice

Questa scheda di riferimento illustra come codificare e decodificare file e stringhe in Base64 da riga di comando su Windows, Linux e macOS — senza necessità di strumenti aggiuntivi.

Uomo barbuto che esegue codice avanzato di notte

Questa guida fa parte di Strumenti per Sviluppatori: La Guida Completa ai Flussi di Lavoro Moderni.

Base64 converte i dati binari in testo ASCII utilizzando 64 caratteri (A–Z, a–z, 0–9, +, /). È ampiamente utilizzato per codificare le credenziali in HTTP Basic Auth, payload JWT (vedi Decodifica e stampa token JWT), segreti Kubernetes, URI dati in HTML/CSS e l’incorporamento di dati binari in JSON o variabili di ambiente. Utilizzare la riga di comando mantiene i dati sensibili in locale ed è automatizzabile nelle pipeline CI/CD.

Codifica e Decodifica Base64 su Windows

Windows non include un comando base64 dedicato, ma è possibile utilizzare strumenti nativi.

Utilizzo di Command Prompt con Certutil

  1. Apri il Prompt dei Comandi.

  2. Codifica un file in Base64:

    certutil -encode input.bin output.b64
    

    Sostituisci input.bin con il percorso del tuo file e output.b64 con il nome del file di output desiderato.

  3. Per stampare il Base64 sulla console senza salvare un file temporaneo:

    certutil -encode input.bin tmp.b64 && findstr /v /c:- tmp.b64 && del tmp.b64
    

    findstr /v /c:- rimuove le righe -----BEGIN CERTIFICATE----- e -----END CERTIFICATE----- aggiunte da certutil.

Decodifica Base64 su Windows (Certutil)

certutil -decode encoded.b64 decoded.bin

Utilizzo di PowerShell per Codificare e Decodificare

Codifica un file:

[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\file.bin"))

Codifica una stringa (UTF-8):

[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("Hello, World!"))
# Output: SGVsbG8sIFdvcmxkIQ==

Decodifica Base64 in stringa:

[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("SGVsbG8sIFdvcmxkIQ=="))
# Output: Hello, World!

Decodifica Base64 in file:

[System.IO.File]::WriteAllBytes("decoded.bin", [Convert]::FromBase64String((Get-Content encoded.b64 -Raw)))

Questi metodi funzionano senza installare software aggiuntivo. Per ulteriori automazioni di shell, consulta la Scheda di Riferimento PowerShell.

Codifica e Decodifica Base64 su Linux

Il comando base64 è preinstallato sulla maggior parte delle distribuzioni Linux (GNU coreutils).

Sintassi di Base

base64 [OPZIONI] [FILE]

Senza file o quando il file è -, legge dall’input standard.

Codifica un File in Base64

base64 input_file > output_file

Esempio:

base64 myfile.txt > encoded.txt

Per stampare il contenuto codificato sul terminale:

base64 myfile.txt

Codifica una Stringa in Base64

echo -n "Hello, World!" | base64
# Output: SGVsbG8sIFdvcmxkIQ==

Utilizza -n con echo per evitare un newline finale. Per la decodifica di stringhe nei JWT, vedi Decodifica e stampa token JWT.

Disabilita l’Involucro delle Righe (-w 0)

Di default, base64 avvolge l’output a 76 caratteri. Per JSON, variabili di ambiente, URL o utilizzi come Terraform base64encode, disabilita l’avvolgimento:

base64 -w 0 input_file > output_file

Decodifica Base64 su Linux

base64 -d encoded_file > decoded_file
# oppure
base64 --decode encoded_file > decoded_file

Esempio:

echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d
# Output: Hello, World!

Alternativa: OpenSSL

echo -n "data" | openssl base64 -e
echo "ZGF0YQ==" | openssl base64 -d

Per ulteriori flussi di lavoro da riga di comando, la Scheda di Riferimento Bash copre piping e scripting.

Codifica e Decodifica Base64 su macOS

macOS include un comando base64 simile a Linux, ma richiede la flag -i per l’input da file.

Codifica un File in Base64

base64 -i input_file > output_file

Esempio:

base64 -i myfile.txt > encoded.txt

Per stampare sul terminale:

base64 -i myfile.txt

Codifica e Copia negli Appunti

base64 -i input_file | pbcopy

Decodifica Base64 su Mac

base64 -D -i encoded_file > decoded_file

La flag -D abilita la modalità di decodifica; -i specifica il file di input. Questi comandi funzionano su tutte le versioni moderne di macOS a partire dalla 10.7.

Riferimento Comando base64 su Linux

Output completo dell’aiuto per lo strumento GNU base64:

$ base64 --help

Usage: base64 [OPTION]... [FILE]
Base64 encode or decode FILE, or standard input, to standard output.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -d, --decode          decode data
  -i, --ignore-garbage  when decoding, ignore non-alphabet characters
  -w, --wrap=COLS       wrap encoded lines after COLS character (default 76).
                          Use 0 to disable line wrapping
      --help        display this help and exit
      --version     output version information and exit

The data are encoded as described for the base64 alphabet in RFC 4648.
When decoding, the input may contain newlines in addition to the bytes of
the formal base64 alphabet.  Use --ignore-garbage to attempt to recover
from any other non-alphabet bytes in the encoded stream.
...

Casi d’Uso Comuni

Caso d’uso Comando / approccio
Header/Payload JWT Decodifica con base64 -d o jq — vedi Decodifica e stampa token JWT
HTTP Basic Auth echo -n "user:pass" | base64 -w 0 per Authorization: Basic <result>
Segreto Kubernetes kubectl create secret generic mysecret --from-literal=key=$(base64 -w 0 file.bin)
cURL con Basic Auth Usa -u user:pass o -H "Authorization: Basic $(echo -n user:pass | base64 -w 0)" — vedi Scheda di Riferimento cURL
Data URI in HTML data:image/png;base64,$(base64 -w 0 image.png)