Base64 Codierung und Decodierung: Befehlsbeispiele für Windows, Linux und Mac

Codieren und Decodieren von Dateien in Base64 unter Windows, Linux und macOS.

Inhaltsverzeichnis

Dieses Nachschlagewerk zeigt, wie man Dateien und Strings in Base64 codieren und decodieren über die Kommandozeile auf Windows, Linux und macOS — ohne zusätzliche Tools.

Bärtiger Mann, der nachts fortgeschrittene Programmierung betreibt

Dieser Leitfaden ist Teil von Entwickler-Tools: Der vollständige Leitfaden zu modernen Entwicklungs-Workflows.

Base64 wandelt Binärdaten in ASCII-Text unter Verwendung von 64 Zeichen (A–Z, a–z, 0–9, +, /) um. Es wird häufig zur Codierung von Anmeldeinformationen in HTTP Basic Auth, JWT-Payloads (siehe JWT-Token decodieren und ausgeben), Kubernetes-Secrets, Data-URIs in HTML/CSS sowie zur Einbettung von Binärdaten in JSON oder Umgebungsvariablen verwendet. Die Nutzung der Kommandozeile hält sensible Daten lokal und ist in CI/CD-Pipelines skriptfähig.

Base64 Codieren und Decodieren unter Windows

Windows bietet keinen dedizierten base64-Befehl, aber Sie können integrierte Tools nutzen.

Verwendung der Eingabeaufforderung mit Certutil

  1. Öffnen Sie die Eingabeaufforderung.

  2. Codieren Sie eine Datei in Base64:

    certutil -encode input.bin output.b64
    

    Ersetzen Sie input.bin durch Ihren Dateipfad und output.b64 durch den gewünschten Ausgabe-Dateinamen.

  3. Um Base64 in der Konsole auszugeben, ohne eine temporäre Datei zu speichern:

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

    findstr /v /c:- entfernt die Zeilen -----BEGIN CERTIFICATE----- und -----END CERTIFICATE-----, die certutil hinzufügt.

Base64 auf Windows decodieren (Certutil)

certutil -decode encoded.b64 decoded.bin

Verwendung von PowerShell zum Codieren und Decodieren

Eine Datei codieren:

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

Eine Zeichenfolge codieren (UTF-8):

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

Base64 in eine Zeichenfolge decodieren:

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

Base64 in eine Datei decodieren:

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

Diese Methoden funktionieren ohne Installation zusätzlicher Software. Für mehr Shell-Automatisierung siehe das PowerShell-Nachschlagewerk.

Base64 Codieren und Decodieren unter Linux

Der Befehl base64 ist auf den meisten Linux-Distributionen (GNU coreutils) vorinstalliert.

Grundlegende Syntax

base64 [OPTIONEN] [DATEI]

Ohne Datei oder wenn die Datei - ist, wird vom Standard-Eingabestrom gelesen.

Eine Datei in Base64 codieren

base64 input_file > output_file

Beispiel:

base64 myfile.txt > encoded.txt

Um den codierten Inhalt im Terminal auszugeben:

base64 myfile.txt

Eine Zeichenfolge in Base64 codieren

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

Verwenden Sie -n bei echo, um eine Zeilenumbruch am Ende zu vermeiden. Für das Decodieren von Strings in JWTs siehe JWT-Token decodieren und ausgeben.

Zeilenumbruch deaktivieren (-w 0)

Standardmäßig bricht base64 die Ausgabe nach 76 Zeichen um. Für JSON, Umgebungsvariablen, URLs oder Terraform base64encode-Verwendungen den Umbruch deaktivieren:

base64 -w 0 input_file > output_file

Base64 unter Linux decodieren

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

Beispiel:

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

Alternative: OpenSSL

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

Für weitere Kommandozeilen-Workflows deckt das Bash-Nachschlagewerk Piping und Scripting ab.

Base64 Codieren und Decodieren unter macOS

macOS enthält einen base64-Befehl, der dem unter Linux ähnlich ist, aber die -i-Flagge für Dateieingaben erfordert.

Eine Datei in Base64 codieren

base64 -i input_file > output_file

Beispiel:

base64 -i myfile.txt > encoded.txt

Um in das Terminal auszugeben:

base64 -i myfile.txt

Codieren und in die Zwischenablage kopieren

base64 -i input_file | pbcopy

Base64 auf dem Mac decodieren

base64 -D -i encoded_file > decoded_file

Die -D-Flagge aktiviert den Decodiermodus; -i spezifiziert die Eingabedatei. Diese Befehle funktionieren auf allen modernen macOS-Versionen ab 10.7.

Linux base64 Befehlsreferenz

Vollständige Hilfenachricht für das GNU base64-Tool:

$ base64 --help

Verwendung: base64 [OPTION]... [DATEI]
Base64 encodieren oder decodieren von DATEI, bzw. von Standardeingabe auf Standardausgabe.

Ohne DATEI, oder wenn DATEI -, wird von Standardeingabe gelesen.

Pflichtargumente für lange Optionen sind auch für kurze Optionen verpflichtend.
  -d, --decode          Daten decodieren
  -i, --ignore-garbage  beim Decodieren Nicht-Alphabet-Zeichen ignorieren
  -w, --wrap=SPALTEN    codierte Zeilen nach SPALTEN Zeichen umbrechen (Standard 76).
                          Verwenden Sie 0, um Zeilenumbruch zu deaktivieren
      --help           diese Hilfe anzeigen und beenden
      --version        Versionsinformationen ausgeben und beenden

Die Daten werden wie im RFC 4648 für das Base64-Alphabet beschrieben codiert.
Beim Decodieren kann die Eingabe zusätzlich zu den Bytes des formalen Base64-Alphabets Zeilenumbrüche enthalten. Verwenden Sie --ignore-garbage, um sich von anderen nicht-alphabetischen Bytes im codierten Stream zu erholen.
...

Häufige Anwendungsfälle

Anwendungsfall Befehl / Ansatz
JWT-Header/Payload Mit base64 -d oder jq decodieren — siehe JWT-Token decodieren und ausgeben
HTTP Basic Auth echo -n "user:pass" | base64 -w 0 für Authorization: Basic <result>
Kubernetes Secret kubectl create secret generic mysecret --from-literal=key=$(base64 -w 0 file.bin)
cURL mit Basic Auth Verwenden Sie -u user:pass oder -H "Authorization: Basic $(echo -n user:pass | base64 -w 0)" — siehe cURL-Nachschlagewerk
Data URI in HTML data:image/png;base64,$(base64 -w 0 image.png)