Base64 kódolás és dekódolás parancssorból

A kódolás az adatok hatékony továbbításához vagy tárolásához szükséges formátumba történő átalakítása. Ezzel szemben a dekódolás a kódolási módszerrel ellentétes, amely a kódolt adatokat visszaalakítja az eredeti formátumba. A Base64 az a kódolási eljárás, amelynek során a bináris adatokat ASCII-be alakítják át. A Base64 kódolásra többnyire azért van szükség, hogy elkerüljék azokat az átviteli problémákat, amelyek akkor jelentkeznek, amikor a bináris adatokat olyan szövegalapú rendszerekbe továbbítják, amelyek nem tudják megfelelően kezelni a bináris adatokat. Ennek eredményeként az információ elveszik vagy megsérül az átvitel során.

A kódolás néhány felhasználási módja:

  • Adattömörítés
  • Adatok elrejtése
  • Adatok továbbítása más formátumban

A Base64 az adatok kódolásához csak ábécét, számot és = szimbólumot használ. Például a c2FtcGxlCg== egy érvényes kódolt adat, míg a b?HV3.Zh2J== nem érvényes kódolt adat.

Ebben a cikkben elmagyarázzuk, hogyan lehet a base64 parancs segítségével kódolni és dekódolni az adatokat egy karakterláncban vagy egy fájlban.

A parancsokat Ubuntu 20.04 Focal Fossa rendszeren hajtottuk végre. Azonban ugyanezeket a parancsokat más Linux-disztribúciókon is futtathatja. A parancsok futtatásához a parancssori Terminál alkalmazást használtuk, amely a Ctrl+Alt+T billentyűkombinációval érhető el.

Base64 szintaxis

Itt a Base64 kódolás szintaxisa:

base64

Options

A base64 parancshoz használható parancssori opciók közül néhány:

-d vagy –decode

Ezzel az opcióval dekódolhat egy fájlt vagy egy karakterláncot.

–help

Ezzel az opcióval a base64 használatával kapcsolatos súgó jeleníthető meg.

-i, –ignore-garbage

Ezzel az opcióval dekódolás közben figyelmen kívül hagyhatja a nem ábécés karaktereket

–version

Ezzel az opcióval megjelenítheti a verzióinformációt

Encoding String

A base64 parancs segítségével egyszerűen kódolhat egy karakterláncot. Például a “Welcome to Linux” minta szövegének base64 kódolásához a parancs a következő lenne:

$ echo “Welcome to Linux” | base64

Ez a parancs a base64 segítségével kódolja a karakterlánc szövegét, és a kódolt szöveget a standard kimenetre nyomtatja, ahogy az a következő képernyőképen látható

A kódolt kimenetet a standard kimenetre történő nyomtatás helyett egy fájlba is mentheti az átirányítási operátor (>) segítségével. A következő parancs kódolja a szöveget, és elmenti a kimenetet egy “encodedfile.txt” nevű fájlba:

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

A kódolt fájl megtekintéséhez használhatja a cat parancsot:

$ cat encodedfile.txt

Dekódolt karakterlánc

A base64 kódolt szöveget a -decode vagy -d opcióval is dekódolhatja. Például a “V2VsYsY29tZSB0byBMaW51eAo=” base64 kódolt szöveg dekódolásához a parancs a következő:

$ echo “V2VsY29tZSB0byBMaW51eAo=” | base64 –decode

Ez a parancs dekódolja a base64 kódolt szöveget, és az eredeti szöveget a standard kimenetre írja, ahogy a következő képernyőképen látható.

Az átirányítási operátor (>) segítségével a dekódolt kimenetet a standard kimenetre történő nyomtatás helyett egy fájlba is mentheti. A következő parancs dekódolja a kódolt szöveget, és az eredeti szöveget egy “decodedfile.txt” nevű fájlba menti:

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

Szövegfájl kódolása

A base64 parancs használható szövegfájl kódolására is. Például a “testfile.txt” nevű szöveges fájl kódolásához a parancs a következő:

$ base64 testfile.txt

Ez a parancs kódolja a megadott szöveges fájlt, és a kódolt formáját a standard kimenetre írja ki, ahogy az a következő képernyőképen látható.

A kódolt kimenetet a standard kimenetre történő nyomtatás helyett egy fájlba is mentheti az átirányítási operátor (>) segítségével. A következő parancs a fájlban lévő szöveget base64 segítségével konvertálja, és a kimenetet egy másik, “kódoltfájl.txt” nevű fájlba menti:

A kódolt fájl megtekintéséhez használhatja a cat parancsot:

$ cat kódoltfájl.txt

Szövegfájl dekódolása

A kódolt szövegfájl dekódolásához használja a -decode vagy -d opciót. Például az “encodedfile.txt” base64 kódolt szövegfájl dekódolásához a parancs a következő:

$ base64 -d encodedfile.txt

Ez a parancs dekódolja a base64 kódolt szövegfájlt, és a következő képernyőképen látható módon kiírja az eredeti szöveget a standard kimenetre.

Az átirányítási operátor (>) segítségével a dekódolt kimenetet a standard kimenetre történő nyomtatás helyett egy fájlba is mentheti. A következő parancs dekódolja a kódolt szöveget, és elmenti az eredeti szöveget egy “decodedfile.txt nevű fájlba, amelyet később a cat parancs segítségével megtekinthetünk.

$ base64 -d encodedfile.txt > decodedfile.txt

A felhasználói bemenet kódolása

A base64 kódolás segítségével bármilyen, a felhasználó által megadott adatot kódolhatunk. Ehhez létre kell hoznunk egy szkriptet, amely fogadja a felhasználói bemenetet, kódolja azt a base64 kódolással, és a kódolt adatokat kiírja a standard kimenetre.

Készítsünk egy “test.sh” szkriptet a következő kóddal:

#!/bin/bash
# Nyomtassa ki a bemenetet kérő üzenetet
echo “Adjon meg néhány adatot a kódoláshoz”
# Mentse a bemenetet egy “data” nevű változóba”
read data
# Kódolja base64 kódolással és mentse a kimenetet egy “encod_data” változóba”
encod_data=`echo -n $data | base64`
# Nyomtassa ki a kódolt kimenetet
echo “Encoded text is : $encod_data”

Futtassa a szkriptet a következőképpen:

$ ./test.sh

A szkript futtatása után a program megkéri, hogy adja meg a kódolni kívánt adatokat. Írjon be néhány adatot, majd nyomja meg az Entert, és a képernyőn megkapja a kódolt kimenetet.

A felhasználói kulcs hitelesítése

Most lássunk egy példát a base64 dekódolásra. A base64 dekódolást a felhasználó érvényességének ellenőrzésére fogjuk használni. Ehhez létrehozunk egy szkriptet, amely megkérdezi a felhasználótól a kulcsot. Ezután a bemeneti kulcsot összeveti az előre meghatározott kulccsal, amelyet először a base64 dekódolással dekódol. Ha a felhasználó által beírt kulcs megegyezik az előre definiált kulccsal, akkor kiírja a “Ön érvényes kulcsot adott meg” üzenetet, ellenkező esetben a képernyőre kiírja, hogy “A beírt kulcs nem érvényes”

Készítsen egy “test1.sh” szkriptet a következő kóddal:

#!/bin/bash
# Üzenet kiírása a bevitel kérésére
echo “Enter your key”
# A felhasználó által megadott kulcs mentése a “key” nevű változóba”
read key
# A kódolt kulcs (QWJjMTIzCg) dekódolása és a kimenet mentése az “orig_key” nevű változóba
orig_key=`echo ‘QWJjMTIzCg==’ | base64 –decode`
# Hasonlítsa össze a felhasználó által megadott kulcsot a dekódolt kulccsal
if ; then
#ha a kulcs megegyezik, akkor ezt írja ki:
echo “Ön érvényes kulcsot adott meg”
else
#ha a kulcs nem egyezik, ezt írja ki:
echo “A megadott kulcs nem érvényes”
fi

Futtassa a szkriptet a következőképpen:

$ ./test1.sh

A szkript futtatása után a rendszer megkérdezi a kulcsot. Írja be a kulcsot, és nyomja meg az Entert. Ha a beírt kulcs megegyezik az előre definiált dekódolt kulccsal, akkor a ” Ön érvényes kulcsot adott meg” üzenet jelenik meg, ellenkező esetben a képernyőn megjelenik a ” A beírt kulcs nem érvényes ” üzenet.

Így használhatja a base64-et egy karakterlánc vagy egy fájl kódolására és dekódolására a parancssorból. Az eredményt vagy a standard kimenetre nyomtathatjuk, vagy elmenthetjük egy fájlba. Ne feledje azonban, hogy a kódolás nem hasonlít a titkosításhoz, és könnyen felfedhetjük a kódolt adatokat, ezért nem ajánlott a kódolás használata érzékeny adatok továbbítására.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.