Aide-mémoire pour l'encodage et le décodage Base64 : exemples de commandes Windows, Linux et Mac

Coder et décoder des fichiers en Base64 sur Windows, Linux et Mac.

Sommaire

Cette fiche de référence montre comment encoder et décoder des fichiers et des chaînes vers Base64 en ligne de commande sur Windows, Linux et macOS — sans outils supplémentaires requis.

homme barbu effectuant un codage avancé la nuit

Ce guide fait partie de Outils pour développeurs : Le guide complet des workflows de développement moderne.

Base64 convertit les données binaires en texte ASCII en utilisant 64 caractères (A–Z, a–z, 0–9, +, /). Il est largement utilisé pour encoder les identifiants dans l’authentification HTTP Basic, les charges utiles JWT (voir Décoder et afficher un jeton JWT), les secrets Kubernetes, les URI de données dans HTML/CSS, et pour intégrer des données binaires dans JSON ou des variables d’environnement. L’utilisation de la ligne de commande permet de conserver les données sensibles localement et est scriptable dans les pipelines CI/CD.

Encodage et décodage Base64 sur Windows

Windows ne fournit pas de commande base64 dédiée, mais vous pouvez utiliser des outils intégrés.

Utilisation de l’Invite de commandes avec Certutil

  1. Ouvrez l’Invite de commandes.

  2. Encodage d’un fichier en Base64 :

    certutil -encode input.bin output.b64
    

    Remplacez input.bin par le chemin de votre fichier et output.b64 par le nom de fichier de sortie souhaité.

  3. Pour afficher le Base64 dans la console sans enregistrer de fichier temporaire :

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

    findstr /v /c:- supprime les lignes -----BEGIN CERTIFICATE----- et -----END CERTIFICATE----- ajoutées par certutil.

Décodage Base64 sur Windows (Certutil)

certutil -decode encoded.b64 decoded.bin

Utilisation de PowerShell pour encoder et décoder

Encodage d’un fichier :

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

Encodage d’une chaîne (UTF-8) :

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

Décodage Base64 vers chaîne :

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

Décodage Base64 vers fichier :

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

Ces méthodes fonctionnent sans installation de logiciels supplémentaires. Pour plus d’automatisation de shell, consultez la Fiche de référence PowerShell.

Encodage et décodage Base64 sur Linux

La commande base64 est préinstallée sur la plupart des distributions Linux (GNU coreutils).

Syntaxe de base

base64 [OPTIONS] [FILE]

Sans fichier ou lorsque le fichier est -, elle lit depuis l’entrée standard.

Encodage d’un fichier en Base64

base64 input_file > output_file

Exemple :

base64 myfile.txt > encoded.txt

Pour afficher le contenu encodé dans le terminal :

base64 myfile.txt

Encodage d’une chaîne en Base64

echo -n "Hello, World!" | base64
# Résultat : SGVsbG8sIFdvcmxkIQ==

Utilisez -n avec echo pour éviter un saut de ligne final. Pour le décodage de chaînes dans les JWT, consultez Décoder et afficher un jeton JWT.

Désactivation du retour à la ligne (-w 0)

Par défaut, base64 effectue un retour à la ligne tous les 76 caractères. Pour JSON, les variables d’environnement, les URL, ou l’utilisation de Terraform base64encode, désactivez le retournement :

base64 -w 0 input_file > output_file

Décodage Base64 sur Linux

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

Exemple :

echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d
# Résultat : Hello, World!

Alternative : OpenSSL

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

Pour plus de workflows en ligne de commande, la Fiche de référence Bash couvre les redirections et le scriptage.

Encodage et décodage Base64 sur macOS

macOS inclut une commande base64 similaire à Linux, mais elle nécessite le drapeau -i pour l’entrée de fichier.

Encodage d’un fichier en Base64

base64 -i input_file > output_file

Exemple :

base64 -i myfile.txt > encoded.txt

Pour afficher dans le terminal :

base64 -i myfile.txt

Encodage et copie dans le presse-papiers

base64 -i input_file | pbcopy

Décodage Base64 sur Mac

base64 -D -i encoded_file > decoded_file

Le drapeau -D active le mode de décodage ; -i spécifie le fichier d’entrée. Ces commandes fonctionnent sur toutes les versions modernes de macOS à partir de 10.7.

Référence de la commande base64 sur Linux

Sortie complète d’aide pour l’outil base64 GNU :

$ base64 --help

Usage: base64 [OPTION]... [FILE]
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.
...

Cas d’utilisation courants

Cas d’utilisation Commande / approche
En-tête/charge utile JWT Décodez avec base64 -d ou jq — voir Décoder et afficher un jeton JWT
Authentification HTTP Basic echo -n "user:pass" | base64 -w 0 pour Authorization: Basic <result>
Secret Kubernetes kubectl create secret generic mysecret --from-literal=key=$(base64 -w 0 file.bin)
cURL avec authentification Basic Utilisez -u user:pass ou -H "Authorization: Basic $(echo -n user:pass | base64 -w 0)" — voir Fiche de référence cURL
URI de données dans HTML data:image/png;base64,$(base64 -w 0 image.png)

Liens utiles