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:
Options
A base64 parancshoz használható parancssori opciók közül néhány:
Ezzel az opcióval dekódolhat egy fájlt vagy egy karakterláncot.
Ezzel az opcióval a base64 használatával kapcsolatos súgó jeleníthető meg.
Ezzel az opcióval dekódolás közben figyelmen kívül hagyhatja a nem ábécés karaktereket
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:
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:
A kódolt fájl megtekintéséhez használhatja a cat parancsot:
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ő:
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:
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ő:
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:
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ő:
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.
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:
# 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:
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:
# Ü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:
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.