Basetop 10 Encoder et décoder à partir de la ligne de commande

Basetop 10 Encoder et décoder à partir de la ligne de commande
Le codage est le processus utilisé pour convertir les données dans un format requis pour une transmission ou un stockage efficaces. En revanche, le décodage est opposé à la méthode de codage qui convertit les données codées à son format d'origine. Base64 est le processus de codage où les données binaires sont converties en ASCII. Le codage de base64 est principalement nécessaire pour éviter les problèmes de transmission qui se produisent lorsque les données binaires sont transmises à des systèmes textuels qui ne peuvent pas gérer correctement les données binaires. En conséquence, les informations sont perdues ou corrompues pendant la transmission.

Certaines des utilisations de l'encodage sont:

  • Compression de données
  • Cachette de données
  • Transmission de données dans un autre format

Pour les données de codage, Base64 utilise uniquement l'alphabet, le nombre et le symbole. Par exemple, c2ftcgxlcg == est une données codées valides pendant que b?Hv3.Zh2j == n'est pas une données codées valides.

Dans ce didacticiel d'inscription Linux, nous expliquerons comment utiliser la commande Base64 pour encoder et décoder les données d'une chaîne ou d'un fichier. Nous avons exécuté les commandes sur Ubuntu 20.04 Système focal FOSSA. Cependant, vous pouvez également exécuter les mêmes commandes sur d'autres distributions Linux.

Base64 Syntaxe

Voici la syntaxe du codage à l'aide de la base64:

base64 [Option] [Fichier]

Options

Certaines des options de ligne de commande qui peuvent être utilisées avec la commande Base64 sont:

-D ou - Decode

Utilisez cette option pour décoder un fichier ou une chaîne.

--aider

Utilisez cette option pour afficher l'aide concernant l'utilisation de la base64.

-I, --ignore-garbage

Utilisez cette option lors du décodage pour ignorer les caractères non alphabet

--version

Utilisez cette option pour afficher les informations de version

Chaîne d'encodage

Vous pouvez facilement coder une chaîne à l'aide de la commande Base64. Par exemple, pour encoder un exemple de texte «Bienvenue à Linux» à Base64, la commande serait:

Echo «Bienvenue à Linux» | base64
Sortie terminale:
Linuxhint @ hp34: ~ $ echo "Bienvenue à Linux" | base64
V2VSY29TZSB0BYBMAW51EAO =

Cette commande codera le texte dans la chaîne à l'aide de la base64 et imprimera le texte codé à la sortie standard comme indiqué dans la sortie du terminal ci-dessus.

Vous pouvez également enregistrer la sortie codée dans un fichier plutôt que d'imprimer à la sortie standard à l'aide de l'opérateur de redirection (>). La commande suivante encodera le texte et enregistrera la sortie dans un fichier nommé «EncodedFile.SMS:

Echo «Bienvenue à Linux» | base64> file codée.SMS

Pour afficher le fichier codé, vous pouvez utiliser la commande CAT:

Cat encodé.SMS
Sortie terminale:
linuxhint @ hp34: ~ $ Cat encodedfile.SMS
4OCCV2VSY29TZSB0BYBMAW51EOKANQO =

Chaîne de décodage

Vous pouvez également décoder le texte codé Base64 à l'aide de l'option -decode ou -d. Par exemple, pour décoder le texte codé de base64 «V2vSy29TZSB0BYBMAW51EAO =», la commande serait:

Echo 4OCCV2VSY29TZSB0BYBMAW51EOKANQO = | Base64 - Decode

Cette commande décodera le texte codé de base64 et imprimera le texte d'origine sur la sortie standard comme indiqué dans la sortie de borne suivante.

Sortie terminale:
linuxhint @ hp34: ~ $ echo 4occv2vsy29tzsb0bybmaw51eokanqo = | Base64 - Decode
«Bienvenue à Linux»

Encodage de fichier texte

La commande Base64 peut également être utilisée pour coder un fichier texte. Pour cet exemple, créons un fichier texte avec un contenu d'abord en utilisant cette commande sur le terminal, ou utilisez n'importe quel fichier de texte.

Echo "" "J'adore Linux
J'adore Linux
J'adore Linux
LinuxHint est ma page d'accueil "" "> TestFile.SMS

Pour encoder ce fichier texte ou tout autre fichier nommé «TestFile.txt », la commande serait:

Base64 TestFile.SMS

Cette commande codera le fichier texte spécifié et imprimera sa forme codée sur la sortie standard comme indiqué dans la sortie de borne suivante:

Linuxhint @ Hp34: ~ $ Base64 TestFile.SMS
Ssbmb3zliexpbnv4ckkgtg92zsbmaw51apjiexvdmugtgudxgktgludxhiaw50iglzig15ighvv
bwvwywdlcg ==

Vous pouvez également enregistrer la sortie codée dans un fichier plutôt que d'imprimer à la sortie standard à l'aide de l'opérateur de redirection (>). La commande suivante convertira le texte dans le fichier à l'aide de Base64 et enregistrera la sortie dans un autre fichier nommé «EncodedFile.SMS". La commande n'imprime rien à l'écran.

Base64 TestFile.txt>.SMS

Pour afficher le fichier codé, vous pouvez utiliser la commande CAT:

Cat encodé.SMS
Sortie terminale:
Linuxhint @ Hp34: ~ $ Base64 TestFile.txt>.SMS
linuxhint @ hp34: ~ $ Cat encodedfile.SMS
Ssbmb3zliexpbnv4ckkgtg92zsbmaw51apjiexvdmugtgudxgktgludxhiaw50iglzig15ighvv
bwvwywdlcg ==

Fichier texte de décodage

Pour décoder un fichier texte codé, utilisez l'option -decode ou -d. Par exemple pour décoder le fichier texte codé de base64 «.txt », la commande serait:

Base64 -D.SMS

Cette commande décodera le fichier texte codé de base64 et imprimera le texte d'origine sur la sortie standard comme indiqué dans la sortie de borne suivante:

Sortie terminale:
linuxhint @ hp34: ~ $ base64 -d encodedfile.SMS
J'adore Linux
J'adore Linux
J'adore Linux
Linuxhint est ma page d'accueil
linuxhint @ hp34: ~ $

Encodage d'entrée utilisateur

En utilisant le codage Base64, nous pouvons coder toutes les données fournies par l'utilisateur. À cette fin, nous devrons créer un script qui prendra la saisie des utilisateurs, le codera à l'aide du codage de base64 et imprimera les données codées sur la sortie standard. Créer un script «Test.sh ”avec le code suivant:

#!/ bac / bash
# Imprimer le message pour demander la saisie
Echo "Fournir des données à encoder"
# Enregistrez l'entrée dans une variable nommée «Data»
lire les données
# Encoder en utilisant le codage Base64 et enregistrez la sortie dans une variable "Encod_data"
cod_data = 'echo -n $ data | base64 '
# Imprimer la sortie codée
Echo "Le texte codé est: $ cod_data"

Exécutez le script comme suit:

Test CHMOD 755.sh; ./test.shot

Après avoir exécuté le script, il vous sera demandé de saisir les données que vous souhaitez encoder. Tapez certaines données et appuyez sur Entrée, et vous recevrez la sortie codée à l'écran comme indiqué ci-dessous:

Sortie terminale:
linuxhint @ hp34: ~ $ chmod 755 Test.sh; ./test.shot
Fournir des données pour encoder
J'adore Linux
Le texte codé est: ssbsb3zligxpbnv4

Ce texte encodé peut être envoyé sur Internet ou à un autre programme, puis décodé plus tard en utilisant une commande simple. Pour cette commande, nous supposons le programme de réception, décoder.sh, a mis les données codées dans une variable de bash appelée Reçus_encoding.

#!/ bac / bash
Reçu_encoding = ssbsb3zligxpbnv4
Reçu_string = 'echo $ reçue_encoding | Base64 --Decode '
echo $ reçu_string

Ici, vous pouvez voir les résultats du programme de réception dans la sortie du terminal:

linuxhint @ hp34: ~ $ chmod 755 Decode.sh; ./décoder.shot
J'adore Linux

Conclusion

C'est ainsi que vous pouvez utiliser la base64 pour coder et décoder une chaîne ou un fichier à partir de la ligne de commande. Les résultats peuvent être imprimés sur la sortie standard, enregistrés dans une variable ou un fichier, ou transmis sur le réseau à un autre programme. Cependant, n'oubliez pas que le codage n'est pas similaire au chiffrement, et on peut facilement révéler les données codées, il n'est donc pas recommandé d'utiliser le codage pour la transmission de données sensibles à moins qu'elle ne soit également cryptée.