Codificarea și decodificarea Base64 din linia de comandă

Codificarea este procesul utilizat pentru a converti datele într-un format necesar pentru transmiterea sau stocarea eficientă. În schimb, decodarea este opusă metodei de codificare, care convertește datele codificate înapoi în formatul lor original. Base64 este procesul de codificare prin care datele binare sunt convertite în ASCII. Codificarea Base64 este necesară, în principal, pentru a evita problemele de transmisie care apar atunci când datele binare sunt transmise către sisteme bazate pe text care nu pot gestiona corect datele binare. Ca urmare, informația este pierdută sau coruptă în timpul transmiterii.

Câteva dintre utilizările codificării sunt:

  • Comprimarea datelor
  • Ascunderea datelor
  • Transmiterea datelor într-un alt format

Pentru codificarea datelor, Base64 folosește doar alfabetul, numărul și simbolul =. De exemplu, c2FtcGxlCg== este o dată codificată validă, în timp ce b?HV3.Zh2J== nu este o dată codificată validă.

În acest articol, vom explica cum să folosim comanda Base64 pentru a codifica și decodifica datele dintr-un șir de caractere sau dintr-un fișier.

Am efectuat comenzile pe sistemul Ubuntu 20.04 Focal Fossa. Cu toate acestea, puteți executa aceleași comenzi și pe alte distribuții Linux. Pentru rularea comenzilor, am utilizat aplicația Terminal în linie de comandă, care poate fi accesată cu ajutorul comenzii rapide de la tastatură Ctrl+Alt+T.

Sintaxa Base64

Iată sintaxa pentru codificarea folosind Base64:

base64

Opțiuni

Câteva dintre opțiunile liniei de comandă care pot fi folosite cu comanda Base64 sunt:

base64

:

-d sau –decode

Utilizați această opțiune pentru a decoda un fișier sau un șir de caractere.

–help

Utilizați această opțiune pentru a afișa ajutorul referitor la utilizarea base64.

-i, –ignore-garbage

Utilizați această opțiune în timpul decodificării pentru a ignora caracterele nealfabetice

–version

Utilizați această opțiune pentru a afișa informații despre versiune

Codare șir de caractere

Puteți codifica cu ușurință un șir de caractere folosind comanda base64. De exemplu, pentru a codifica un exemplu de text „Welcome to Linux” în base64, comanda ar fi următoarea:

$ echo „Welcome to Linux” | base64

Această comandă va codifica textul din șirul de caractere folosind base64 și va imprima textul codificat la ieșirea standard, așa cum se arată în următoarea captură de ecran

Puteți, de asemenea, salva ieșirea codificată într-un fișier în loc să o imprimați la ieșirea standard folosind operatorul de redirecționare (>). Următoarea comandă va codifica textul și va salva ieșirea într-un fișier numit „encodedfile.txt:

$ echo „Welcome to Linux” | base64 > encodedfile.txt

Pentru a vizualiza fișierul codificat, puteți utiliza comanda cat:

$ cat encodedfile.txt

Decodificarea șirului de caractere

Puteți, de asemenea, decodifica textul codificat în baza64 utilizând opțiunea -decode sau -d. De exemplu, pentru a decoda textul codat în baza64 „V2VsY29tZSB0byBMaW51eAo=”, comanda ar fi:

$ echo „V2VsY29tZSB0byBMaW51eAo=” | base64 –decode

Această comandă va decoda textul codat în baza64 și va imprima textul original pe ieșirea standard, așa cum se arată în următoarea captură de ecran.

De asemenea, puteți salva ieșirea decodificată într-un fișier în loc să o imprimați pe ieșirea standard folosind operatorul de redirecționare (>). Următoarea comandă va decoda textul codificat și va salva textul original într-un fișier numit „decodedfile.txt:

$ echo „V2VsY29tZSB0byBMaW51eAo=” | base64 -decode > decodedfile.txt

Codificarea fișierului text

Comanda base64 poate fi, de asemenea, utilizată pentru a codifica un fișier text. De exemplu, pentru a codifica un fișier text numit „testfile.txt”, comanda ar fi:

$ base64 testfile.txt

Această comandă va codifica fișierul text specificat și va imprima forma sa codificată pe ieșirea standard, așa cum se arată în următoarea captură de ecran.

De asemenea, puteți salva ieșirea codificată într-un fișier în loc să o imprimați pe ieșirea standard folosind operatorul de redirecționare (>). Următoarea comandă va converti textul din fișier folosind base64 și va salva ieșirea într-un alt fișier numit „encodedfile.txt:

Pentru a vizualiza fișierul codificat, puteți folosi comanda cat:

$ cat encodedfile.txt

Decodificarea fișierului text

Pentru a decoda un fișier text codificat, utilizați opțiunea -decode sau -d. De exemplu, pentru a decoda fișierul text codificat în baza64 „encodedfile.txt”, comanda ar fi:

$ base64 -d encodedfile.txt

Această comandă va decoda fișierul text codificat în baza64 și va imprima textul original pe ieșirea standard, așa cum se arată în următoarea captură de ecran.

De asemenea, puteți salva ieșirea decodificată într-un fișier în loc să o imprimați pe ieșirea standard folosind operatorul de redirecționare (>). Următoarea comandă va decoda textul codificat și va salva textul original într-un fișier numit „decodedfile.txt care poate fi vizualizat ulterior cu ajutorul comenzii cat.

$ base64 -d encodedfile.txt > decodedfile.txt

Codificarea datelor de intrare ale utilizatorului

Utilizând codificarea base64, putem codifica orice date furnizate de utilizator. În acest scop, va trebui să creăm un script care să preia datele introduse de utilizator, să le codifice folosind codificarea base64 și să tipărească datele codificate pe ieșirea standard.

Creăm un script „test.sh” cu următorul cod:

#!/bin/bash
# Imprimă un mesaj pentru a cere date de intrare
echo „Provide Some data to encode”
# Salvează datele de intrare într-o variabilă numită „data”
read data
# Codifică folosind codificarea base64 și salvează ieșirea într-o variabilă „encod_data”
encod_data=`echo -n $data | base64`
# Imprimă ieșirea codificată
echo „Encoded text is : $encod_data”

Executați scriptul după cum urmează:

$ ./test.sh

După rularea scriptului, vi se va cere să introduceți datele pe care doriți să le codificați. Tastați câteva date și apăsați Enter, iar pe ecran veți primi ieșirea codificată.

Validarea cheii de utilizator

Acum să vedem un exemplu de decodare base64. Vom utiliza decodarea base64 pentru a verifica validitatea utilizatorului. Pentru a face acest lucru, vom crea un script care va cere utilizatorului o cheie. Apoi va potrivi cheia de intrare cu cheia predefinită, care va fi mai întâi decodată prin decodarea base64. Dacă cheia introdusă de utilizator se potrivește cu cheia predefinită, se va tipări mesajul „You have entered a valid key”, în caz contrar, veți vedea „The key you have entered is not valid „tipărit pe ecran.

Creăm un script „test1.sh” cu următorul cod:

#!/bin/bash
# Tipăriți un mesaj pentru a cere introducerea de date
echo „Enter your key”
# Salvați cheia furnizată de utilizator într-o variabilă numită „key”
read key
# Decodificați cheia codificată (QWJjMTIzCg) și salvați rezultatul într-o variabilă numită „orig_key”
orig_key=`echo ‘QWJjMTIzCg==’ | base64 –decode`
# Comparați cheia introdusă de utilizator cu cheia decodată
if ; then
#dacă cheia se potrivește, se tipărește acest lucru:
echo „You have entered a valid key”
else
#dacă cheia nu se potrivește, se tipărește acest lucru:
echo „The key you have entered is not valid”
fi

Executați scriptul după cum urmează:

$ ./test1.sh

După rularea scriptului, vi se va cere cheia. Introduceți cheia și apăsați Enter. Dacă cheia introdusă se potrivește cu cheia decodată predefinită, veți primi mesajul ” You have entered a valid key”, în caz contrar, pe ecran va fi tipărit mesajul „The key you have entered is not valid „.

Acesta este modul în care puteți utiliza base64 pentru a codifica și decodifica un șir de caractere sau un fișier din linia de comandă. Rezultatele pot fi fie tipărite pe ieșirea standard, fie pot fi salvate într-un fișier. Cu toate acestea, nu uitați că codificarea nu este similară cu criptarea și se pot dezvălui cu ușurință datele codificate, deci nu se recomandă utilizarea codificării pentru transmiterea de date sensibile.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.