Base64 coderen en decoderen: commando-voorbeelden voor Windows, Linux en Mac

Codeer en decodeer bestanden naar Base64 op Windows, Linux en Mac.

Inhoud

Dit naslagwerk toont hoe je bestanden en teksten naar Base64 encodeert en decodeert via de command line op Windows, Linux en macOS — zonder extra tools.

baardman die ’s nachts geavanceerd codeert

Deze gids maakt deel uit van Developer Tools: De Complete Gids voor Moderne Ontwikkelingsworkflows.

Base64 converteert binaire data naar ASCII-tekst met behulp van 64 tekens (A–Z, a–z, 0–9, +, /). Het wordt veel gebruikt voor het encoderen van inloggegevens in HTTP Basic Auth, JWT-payloads (zie Decodeer en print JWT-token), Kubernetes-secret, data-URI’s in HTML/CSS en het insluiten van binaire data in JSON of omgevingsvariabelen. Het gebruik van de command line houdt gevoelige data lokaal en is scriptbaar in CI/CD-pijplijnen.

Base64 Encoderen en Decoderen op Windows

Windows heeft geen ingebouwde base64-commando, maar je kunt wel ingebouwde tools gebruiken.

Gebruik Command Prompt met Certutil

  1. Open Command Prompt.

  2. Encodeer een bestand naar Base64:

    certutil -encode input.bin output.b64
    

    Vervang input.bin door je bestandslocatie en output.b64 door de gewenste uitvoerbestandsnaam.

  3. Om Base64 naar de console te printen zonder een tijdelijk bestand op te slaan:

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

    findstr /v /c:- verwijdert de -----BEGIN CERTIFICATE----- en -----END CERTIFICATE----- regels die certutil toevoegt.

Base64 Decoderen op Windows (Certutil)

certutil -decode encoded.b64 decoded.bin

Gebruik PowerShell voor Encoderen en Decoderen

Een bestand encoderen:

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

Een string encoderen (UTF-8):

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

Base64 decoderen naar string:

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

Base64 decoderen naar bestand:

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

Deze methoden werken zonder extra software te installeren. Voor meer shell-automatisering, zie de PowerShell Naslag.

Base64 Encoderen en Decoderen op Linux

Het base64-commando is vooraf geïnstalleerd op de meeste Linux-distributies (GNU coreutils).

Basis Syntax

base64 [OPTIES] [BESTAND]

Zonder bestand of wanneer het bestand - is, wordt er gelezen van de standaard invoer.

Een bestand naar Base64 encoderen

base64 input_file > output_file

Voorbeeld:

base64 myfile.txt > encoded.txt

Om de gecodeerde inhoud naar de terminal te printen:

base64 myfile.txt

Een string naar Base64 encoderen

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

Gebruik -n met echo om een achterblijpende nieuwe regel te voorkomen. Voor het decoderen van strings in JWTs, zie Decodeer en print JWT-token.

Regelsomloop uitschakelen (-w 0)

Standaard omwikkelt base64 de uitvoer na 76 karakters. Voor JSON, omgevingsvariabelen, URL’s of Terraform base64encode-gebruik, schakel het omwikkelen uit:

base64 -w 0 input_file > output_file

Base64 decoderen op Linux

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

Voorbeeld:

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

Alternatief: OpenSSL

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

Voor meer command-line workflows, behandelt de Bash Naslag het pijpen en scripten.

Base64 Encoderen en Decoderen op macOS

macOS bevat een base64-commando dat lijkt op Linux, maar het vereist de -i-vlag voor bestandsinvoer.

Een bestand naar Base64 encoderen

base64 -i input_file > output_file

Voorbeeld:

base64 -i myfile.txt > encoded.txt

Om naar de terminal te printen:

base64 -i myfile.txt

Encoderen en kopiëren naar klembord

base64 -i input_file | pbcopy

Base64 decoderen op Mac

base64 -D -i encoded_file > decoded_file

De -D-vlag schakelt de decode-modus in; -i specificeert het invoerbestand. Deze commando’s werken op alle moderne macOS-versies vanaf 10.7.

Linux base64 Commando Referentie

Volledige hulpuitvoer voor het GNU base64-tool:

$ base64 --help

Gebruik: base64 [OPTIE]... [BESTAND]
Base64 encodeer of decodeer BESTAND, of standaard invoer, naar standaard uitvoer.

Zonder BESTAND, of wanneer BESTAND -, lees standaard invoer.

Verplichte argumenten voor lange opties zijn ook verplicht voor korte opties.
  -d, --decode          decodeer data
  -i, --ignore-garbage  bij decoderen, negeer niet-alfabetische karakters
  -w, --wrap=COLS       omwikkelen van gecodeerde regels na COLS karakter (standaard 76).
                          Gebruik 0 om regelsomloop uit te schakelen
      --help        toon deze hulp en exit
      --version     output versie-informatie en exit

De data worden geëncodeerd zoals beschreven voor het base64-alfabet in RFC 4648.
Bij decoderen kan de invoer naast de bytes van het formele base64-alfabet ook nieuwe regels bevatten. Gebruik --ignore-garbage om te proberen te herstellen van andere niet-alfabetische bytes in de gecodeerde stroom.
...

Gebruikelijke Gebruiksgevallen

Gebruiksgeval Commando / aanpak
JWT header/payload Decodeer met base64 -d of jq — zie Decodeer en print JWT-token
HTTP Basic Auth echo -n "user:pass" | base64 -w 0 voor Authorization: Basic <result>
Kubernetes secret kubectl create secret generic mysecret --from-literal=key=$(base64 -w 0 file.bin)
cURL met Basic Auth Gebruik -u user:pass of -H "Authorization: Basic $(echo -n user:pass | base64 -w 0)" — zie cURL Naslag
Data URI in HTML data:image/png;base64,$(base64 -w 0 image.png)