Comment Encoder ou Décoder une Chaîne Base64 Sous Linux ?

Par : TutorialsGrey, le 16 Janvier 2023

Ce tutoriel vous montrera comment encoder ou décoder une chaîne de caractères base64 sous Linux en utilisant le terminal.

Base64 est un schéma d'encodage souvent utilisé pour coder des données binaires en texte qui peut facilement être transféré et stocké sur des supports sans modification accidentelle.

Linux possède un utilitaire de ligne de commande intégré qui vous permet d'encoder ou de décoder facilement une chaîne de caractères en utilisant la base64.

Avant de poursuivre, il convient de préciser que le schéma d'encodage base64 sert uniquement à encoder les données, et non à les crypter, puisqu'il est conçu pour être décodé en données d'origine. Il ne faut donc jamais l'utiliser à la place du cryptage à des fins de sécurité.

 

Syntaxe de la commande base64 sous Linux

Commençons par explorer la syntaxe de la commande base64 sur votre système Linux.

L'utilisation de cet utilitaire sans spécifier d'options encodera toute chaîne de caractères qui lui est envoyée en utilisant le format base64. Le résultat sera affiché dans le terminal.

La commande base64 possède trois paramètres optionnels que nous pouvons utiliser pour contrôler la fonctionnalité.

base64 [OPTIONS] [INFILE] [OUTFILE]
  • [OPTIONS] - Le premier paramètre facultatif vous permet de contrôler le comportement de l'utilitaire base64 sous Linux. Par exemple, c'est ainsi que vous indiquez à l'outil de décoder une chaîne plutôt que de l'encoder.

Vous pouvez ignorer ce champ si vous le souhaitez, car toutes les options sont précédées d'un simple (-) ou d'un double tiret (--).

  • [INFILE] - Le deuxième paramètre vous permet de spécifier un fichier à utiliser comme entrée de l'outil pour l'encodage ou le décodage.
  • [OUTFILE] - Le dernier paramètre vous permet de spécifier l'endroit où vous souhaitez enregistrer la chaîne base64 résultante.

Si vous encodez, il s'agira d'une chaîne encodée en base64. Si vous décodez, cette chaîne sera le contenu original.

Si ce paramètre n'est pas utilisé, tous les résultats de la commande base64 sous Linux seront émis vers la sortie standard, qui est généralement la session actuelle du terminal.

 

Options de la commande base64

Vous trouverez ci-dessous une liste des options que vous pouvez utiliser pour contrôler la commande base64 sous Linux.

  • -e ou --encode - L'option "encode" indique à la commande base64 d'enoder toutes les données d'entrée.

Cette option est le comportement par défaut de la commande base64.

  • -d ou --decode - En utilisant l'option "decode", l'outil base64 décodera toute chaîne base64 qui lui est passée.
  • -n ou --noerrcheck - Lors du décodage des données, base64 vérifiera s'il y a des erreurs d'encodage dans la chaîne.

En utilisant cette option, vous pouvez indiquer à la commande base64 sous Linux d'ignorer la vérification des erreurs.

  • -i ou --ignore-garbage - L'option "ignore garbage" indique à l'outil d'ignorer tout caractère qui n'est pas un caractère base64 valide lors du décodage.

 

Encodage d'une chaîne en utilisant Base64 sous Linux

Cette section vous montrera un exemple de la façon d'encoder une chaîne de caractères sous Linux en utilisant base64.

Puisque nous encodons une chaîne de caractères, nous n'avons pas à nous soucier de passer des options. Par défaut, l'outil base64 encodera toutes les données qui lui seront transmises.

 

Passage d'une chaîne à encoder

Pour notre premier exemple, nous allons vous montrer comment encoder une chaîne de caractères base64 sous Linux à partir de la ligne de commande.

Nous devrons utiliser le symbole (|) pour transmettre une chaîne de caractères au terminal base64. Toute entrée du côté gauche du symbole sera transmise au côté droit.

Par exemple, pour encoder le texte "tutorialsgrey.com", nous utiliserons la commande suivante.

echo "tutorialsgrey.com" | base64

Vous pouvez voir ci-dessous le résultat renvoyé par l'utilitaire base64 de notre système Linux. Si vous voulez retourner la chaîne de caractères résultante à ses données d'origine, tout ce que vous devez faire est de la décoder.

dHV0b3JpYWxzZ3JleS5jb20K

 

Encodage d'un fichier à l'aide de Base64

Il est également possible d'utiliser l'outil de ligne de commande base64 de Linux pour encoder le contenu du fichier.

Dans cet exemple, nous avons un fichier appelé "tutorialsgrey.txt" avec plusieurs lignes de texte.

Pour encoder ce fichier à l'aide de base64, nous devons faire référence au chemin d'accès à ce fichier après l'appel à l'utilitaire base64. Puisque nous encodons le fichier, nous n'avons pas à nous soucier de spécifier une quelconque option.

base64 tutorialsgrey.txt

Puisque nous ne spécifions pas de fichier pour enregistrer la sortie, vous devriez voir une chaîne de caractères en base64 dans le terminal, comme ci-dessous.

U29tZSB0ZXh0IHRvIGVuY29kZSB3aXRoIEJhc2U2NC4KQW5vdGhlciB0ZXh0IHRvIGVuY29kZSB3
aXRoIEJhc2U2NC4KCkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlw
aXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZAp0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUg
ZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sCnF1aXMgbm9z
dHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBj
b21tb2RvCmNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQg
aW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UKY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFy
aWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24KcHJvaWRlbnQsIHN1
bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9y
dW0uCgouLi4=

 

Décodage d'une chaîne en utilisant Base64 sous Linux

Maintenant que nous vous avons montré comment encoder une chaîne de caractères en utilisant base64 sous Linux, passons au décodage de la chaîne.

Pour que l'outil base64 décode une chaîne ou un fichier, vous devez passer l'option "-d" ou "--decode".

 

Passage d'une chaîne base64 à décoder

Pour cet exemple, nous allons utiliser l'outil de ligne de commande pour décoder la chaîne encodée en base64 "dHV0b3JpYWxzZ3JleS5jb20K".

Nous pouvons transmettre cette chaîne par l'entrée standard en utilisant le symbole (|) comme celui illustré ci-dessous. En utilisant l'option "--decode", nous disons à base64 qu'il doit décoder la chaîne que nous lui passons.

echo "dHV0b3JpYWxzZ3JleS5jb20K" | base64 -d

Vous pouvez voir ci-dessous comment la commande base64 sur Linux a décodé la chaîne de caractères pour la ramener à son contenu original.

tutorialsgrey.com

 

Décodage d'un fichier encodé en base64

Vous pouvez également utiliser l'outil de ligne de commande base64 sous Linux pour décoder un fichier encodé. Cette opération se comporte comme l'encodage d'un fichier, la seule différence étant l'ajout des options "-d" ou "--decode".

Pour cet exemple, nous allons décoder un fichier texte appelé "tutorialsgrey.encode" avec une chaîne encodée en base64.

Tout ce que nous devons faire est de référencer "base64" suivi de l'option "-d", puis enfin, le fichier que nous voulons décoder.

base64 -d tutorialsgrey.encode

Avec le résultat suivant, vous pouvez voir comment la commande base64 sur Linux a décodé notre fichier et a retourné la chaîne suivante.

Some text to encode with Base64.
Another text to encode with Base64.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

...

 

Conclusion

À ce stade du guide, vous devriez savoir comment utiliser l'utilitaire base64 sous Linux.

Cet utilitaire peut encoder et décoder n'importe quelle chaîne ou fichier en utilisant le standard base64.