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.
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.

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
-
Ouvrez l’Invite de commandes.
-
Encodage d’un fichier en Base64 :
certutil -encode input.bin output.b64Remplacez
input.binpar le chemin de votre fichier etoutput.b64par le nom de fichier de sortie souhaité. -
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.b64findstr /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) |