BaseTop 10 Enkoduj i dekoduj z wiersza poleceń

BaseTop 10 Enkoduj i dekoduj z wiersza poleceń
Kodowanie to proces używany do konwersji danych w formacie wymaganym do skutecznej transmisji lub przechowywania. Natomiast dekodowanie jest przeciwne do metody kodowania, która przekształca zakodowane dane z powrotem do oryginalnego formatu. Base64 to proces kodowania, w którym dane binarne są konwertowane na ASCII. Base64 kodowanie jest głównie wymagane, aby uniknąć problemów transmisji, które występują, gdy dane binarne są przesyłane do systemów tekstowych, które nie mogą poprawnie obsługiwać danych binarnych. W rezultacie informacje są utracone lub uszkodzone podczas transmisji.

Niektóre zastosowania kodowania to:

  • Kompresja danych
  • Ukrywanie danych
  • Przesyłanie danych w innym formacie

Do kodowania danych Base64 używa tylko alfabetu, liczby i symbolu. Na przykład, C2FTCGXLCG == to prawidłowe zakodowane dane, podczas gdy B?HV3.ZH2J == nie jest prawidłowym zakodowanym danym.

W tym samouczku podpowiedzi Linuksa wyjaśnimy, jak używać polecenia Base64 do kodowania i dekodowania danych w ciągu lub pliku. Wykonaliśmy polecenia na Ubuntu 20.04 Focal Fossa System. Jednak możesz również uruchomić te same polecenia w innych rozkładach Linux.

Składnia Base64

Oto składnia do kodowania za pomocą Base64:

base64 [opcja] [plik]

Opcje

Niektóre z opcji wiersza poleceń, które można użyć z poleceniem Base64 to:

-d lub - -decode

Użyj tej opcji, aby zdekodować plik lub ciąg.

--pomoc

Użyj tej opcji, aby wyświetlić pomoc w zakresie wykorzystania Base64.

-I, --gnore-Garbage

Użyj tej opcji podczas dekodowania, aby zignorować znaki inne niż alfabet

--wersja

Użyj tej opcji, aby wyświetlić informacje o wersji

Kodowanie ciągów

Możesz łatwo zakodować ciąg za pomocą polecenia Base64. Na przykład, aby zakodować przykładowy tekst „Welcome to Linux” do Base64, poleceniem byłoby:

Echo „Welcome to Linux” | Base64
Wyjście zacisków:
Linuxhint@HP34: ~ $ Echo „Welcome to Linux” | Base64
V2VSY29TZSB0BYBMAW51EAO =

To polecenie zakoduje tekst w ciągu za pomocą Base64 i drukuje kodowany tekst na standardowe wyjście, jak pokazano na powyższym wyjściu terminalu.

Możesz także zapisać zakodowane dane wyjściowe na pliku, a nie drukować na standardowym wyjściu za pomocą operatora przekierowania (>). Poniższe polecenie zakoduje tekst i zapisze wyjście w pliku o nazwie „EncodedFile.tekst:

Echo „Welcome to Linux” | base64> kodedFile.tekst

Aby wyświetlić kodowany plik, możesz użyć polecenia CAT:

Kod kodowany plik.tekst
Wyjście zacisków:
Linuxhint@HP34: ~ $ CAT ENCODEDFILE.tekst
4OCCV2VSY29TZSB0BYBMAW51EOKANQO =

Ciąg dekodowania

Możesz także zdekodować tekst zakodowany Base64 za pomocą opcji -Decode lub -d. Na przykład, aby zdekodować tekst zakodowany Base64 „V2VSY29TZSB0BYBMAW51EAO =”, poleceniem byłoby:

Echo 4OCCV2VSY29TZSB0BYBMAW51EOKANQO = | Base64 - -Decode

To polecenie zdekoduje tekst zakodowany Base64 i wydrukuje oryginalny tekst na standardowym wyjściu.

Wyjście zacisków:
Linuxhint@HP34: ~ $ Echo 4OCCV2VSY29TZSB0BYBMAW51EOKANQO = | Base64 - -Decode
„Witamy w Linux”

Kodowanie pliku tekstowego

Do kodowania pliku tekstowego można również użyć polecenia Base64. W tym przykładzie pozwala najpierw utworzyć plik tekstowy z niektórymi treściami za pomocą tego polecenia na terminalu lub użyć dowolnego pliku tekstowego.

Echo „” „I Love Linux
Kocham Linuksa
Kocham Linuksa
Linuxhint to moja strona główna „„ ”> testowy.tekst

Aby zakodować ten lub dowolny plik tekstowy o nazwie „TestFile.txt ”, poleceniem byłoby:

Base64 TestFile.tekst

To polecenie zakoduje określony plik tekstowy i wydrukuje jego zakodowany formularz na standardowym wyjściu, jak pokazano na następnym wyjściu terminalu:

Linuxhint@HP34: ~ $ base64 TestFile.tekst
SSBMB3ZLIEXPBNV4CKGTG92ZSBMAW51EAPJIEXVDMUGTGUDXGKTGLUDXHIAW5IGLZIG15IGHV
bwvwywdlcg ==

Możesz także zapisać zakodowane dane wyjściowe na pliku, a nie drukować na standardowym wyjściu za pomocą operatora przekierowania (>). Poniższe polecenie przekonwertuje tekst w pliku za pomocą Base64 i zapisz wyjście na innym pliku o nazwie „EncodedFile.tekst". Polecenie nie drukuje niczego na ekranie.

Base64 TestFile.TXT> ENCODEDFILE.tekst

Aby wyświetlić kodowany plik, możesz użyć polecenia CAT:

Kod kodowany plik.tekst
Wyjście zacisków:
Linuxhint@HP34: ~ $ base64 TestFile.TXT> ENCODEDFILE.tekst
Linuxhint@HP34: ~ $ CAT ENCODEDFILE.tekst
SSBMB3ZLIEXPBNV4CKGTG92ZSBMAW51EAPJIEXVDMUGTGUDXGKTGLUDXHIAW5IGLZIG15IGHV
bwvwywdlcg ==

Dekodowanie pliku tekstowego

Aby zdekodować zakodowany plik tekstowy, użyj opcji -Decode lub -d. Na przykład, aby zdekodować plik tekstowy zakodowany Base64 „EncodedFile.txt ”, poleceniem byłoby:

base64 -d kodedfile.tekst

To polecenie zdekoduje kodowany plik tekstowy Base64 i wydrukuje oryginalny tekst na standardowym wyjściu, jak pokazano na następnym wyjściu terminalu:

Wyjście zacisków:
Linuxhint@hp34: ~ $ base64 -d enkodedfile.tekst
Kocham Linuksa
Kocham Linuksa
Kocham Linuksa
Linuxhint to moja strona główna
Linuxhint@HP34: ~ $

Kodowanie wejścia użytkownika

Korzystając z kodowania Base64, możemy kodować dowolne dane dostarczane przez użytkownika. W tym celu będziemy musieli utworzyć skrypt, który przyjmie wprowadzenie użytkownika, zakodować go za pomocą kodowania Base64 i wydrukować zakodowane dane na temat standardowego wyjścia. Utwórz skrypt „Testuj.sh ”z następującym kodem:

#!/bin/bash
# Wydrukuj wiadomość, aby poprosić o dane wejściowe
Echo „Zapewnij pewne dane do zakodowania”
# Zapisz wejście do zmiennej o nazwie „Dane”
odczyt dane
# Zakoduj za pomocą kodowania Base64 i zapisz wyjście do zmiennej „enkod_data”
enkod_data = 'echo -n $ dane | Base64 '
# Wydrukuj zakodowane wyjście
Echo „Zakodowany tekst to: $ en enkod_data”

Uruchom skrypt w następujący sposób:

Test CHMOD 755.cii; ./test.cii

Po uruchomieniu skryptu zostaniesz poproszony o wprowadzenie danych, które chcesz zakodować. Wpisz niektóre dane i naciśnij ENTER, a otrzymasz zakodowane dane wyjściowe na ekranie, jak pokazano poniżej:

Wyjście zacisków:
Linuxhint@HP34: ~ $ CHMOD 755 Test.cii; ./test.cii
Podaj kilka danych do zakodowania
Kocham Linuksa
Kodowany tekst to: SSBSB3ZLIGXPBNV4

Ten zakodowany tekst może być wysyłany przez Internet lub do innego programu, a następnie dekodować później za pomocą prostego polecenia. Dla tego polecenia zakładamy program odbierający, dekoduj.sh, umieścił zakodowane dane w zmienną w bash wywołanych Otrzymane_encoding.

#!/bin/bash
Otrzymane_encoding = ssbsb3zligxpbnv4
Otrzymane_string = 'echo $ otrzymane_encoding | base64 - -decode '
Echo $ otrzymane_string

Tutaj możesz zobaczyć wyniki programu odbierającego w wyjściu terminalu:

Linuxhint@HP34: ~ $ CHMOD 755 Decode.cii ; ./rozszyfrować.cii
Kocham Linuksa

Wniosek

W ten sposób możesz użyć Base64 do kodowania i dekodowania ciągu lub pliku z wiersza poleceń. Wyniki można wydrukować na standardowym wyjściu, zapisane w zmiennej lub pliku, lub przekazać sieć do innego programu. Pamiętaj jednak, że kodowanie nie jest podobne do szyfrowania i można łatwo ujawnić zakodowane dane, więc nie zaleca się używania kodowania do transmisji wrażliwych danych.