Die Kodierung ist der Prozess, der verwendet wird, um Daten in ein Format zu konvertieren, das für eine effektive Übertragung oder Speicherung erforderlich ist. Im Gegensatz dazu ist die Dekodierung das Gegenteil der Kodierungsmethode, die die kodierten Daten wieder in ihr ursprüngliches Format umwandelt. Base64 ist der Kodierungsprozess, bei dem die binären Daten in ASCII umgewandelt werden. Die Base64-Kodierung ist meist erforderlich, um Übertragungsprobleme zu vermeiden, die auftreten, wenn binäre Daten an textbasierte Systeme übertragen werden, die die binären Daten nicht richtig verarbeiten können. Infolgedessen gehen die Informationen bei der Übertragung verloren oder werden beschädigt.
Einige der Verwendungszwecke der Kodierung sind:
- Datenkomprimierung
- Datenverstecken
- Übertragung von Daten in einem anderen Format
Für die Kodierung von Daten verwendet Base64 nur das Alphabet, die Zahl und das Symbol =. Zum Beispiel ist c2FtcGxlCg== ein gültiger kodierter Datenwert, während b?HV3.Zh2J== kein gültiger kodierter Datenwert ist.
In diesem Artikel werden wir erklären, wie man den base64-Befehl verwendet, um die Daten in einem String oder einer Datei zu kodieren und zu dekodieren.
Wir haben die Befehle auf dem Ubuntu 20.04 Focal Fossa System ausgeführt. Sie können die gleichen Befehle jedoch auch auf anderen Linux-Distributionen ausführen. Zum Ausführen der Befehle haben wir die Kommandozeilenanwendung Terminal verwendet, die mit dem Tastaturkürzel Strg+Alt+T aufgerufen werden kann.
Base64 Syntax
Hier ist die Syntax für die Kodierung mit Base64:
Optionen
Einige der Kommandozeilenoptionen, die mit dem base64 Befehl verwendet werden können, sind:
Verwenden Sie diese Option, um eine Datei oder einen String zu dekodieren.
Verwenden Sie diese Option, um Hilfe zur Verwendung von base64 anzuzeigen.
Verwenden Sie diese Option während der Dekodierung, um nicht-alphabetische Zeichen zu ignorieren
Verwenden Sie diese Option, um Versionsinformationen anzuzeigen
Kodierung von Zeichenketten
Sie können eine Zeichenkette einfach mit dem Befehl base64 kodieren. Um zum Beispiel den Beispieltext „Welcome to Linux“ in base64 zu kodieren, wäre der Befehl wie folgt:
Dieser Befehl kodiert den Text in der Zeichenkette mit base64 und gibt den kodierten Text auf der Standardausgabe aus, wie im folgenden Screenshot zu sehen ist
Sie können die kodierte Ausgabe auch in einer Datei speichern, anstatt sie mit dem Umleitungsoperator (>) auf der Standardausgabe auszugeben. Der folgende Befehl kodiert den Text und speichert die Ausgabe in einer Datei namens „encodedfile.txt:
Um die kodierte Datei anzuzeigen, können Sie den Befehl cat verwenden:
String dekodieren
Sie können den base64-kodierten Text auch mit der Option -decode oder -d dekodieren. Um beispielsweise den base64-kodierten Text „V2VsY29tZSB0byBMaW51eAo=“ zu dekodieren, lautet der Befehl:
Dieser Befehl dekodiert den base64-kodierten Text und gibt den Originaltext auf der Standardausgabe aus, wie im folgenden Screenshot gezeigt.
Sie können die dekodierte Ausgabe auch in einer Datei speichern, anstatt sie mit dem Umleitungsoperator (>) auf der Standardausgabe auszugeben. Der folgende Befehl dekodiert den kodierten Text und speichert den Originaltext in einer Datei mit dem Namen „decodedfile.txt:
Textdatei kodieren
Der Befehl base64 kann auch zum Kodieren einer Textdatei verwendet werden. Um zum Beispiel eine Textdatei mit dem Namen „testfile.txt“ zu kodieren, lautet der Befehl:
Dieser Befehl kodiert die angegebene Textdatei und gibt die kodierte Form auf der Standardausgabe aus, wie im folgenden Screenshot gezeigt.
Sie können die kodierte Ausgabe auch in einer Datei speichern, anstatt sie mit dem Umleitungsoperator (>) auf der Standardausgabe auszugeben. Der folgende Befehl konvertiert den Text in der Datei mit base64 und speichert die Ausgabe in einer anderen Datei mit dem Namen „encodedfile.txt:
Um die kodierte Datei anzuzeigen, können Sie den Befehl cat verwenden:
Textdatei dekodieren
Um eine kodierte Textdatei zu dekodieren, verwenden Sie die Option -decode oder -d. Um zum Beispiel die base64 kodierte Textdatei „encodedfile.txt“ zu dekodieren, lautet der Befehl:
Dieser Befehl dekodiert die base64 kodierte Textdatei und gibt den ursprünglichen Text auf der Standardausgabe aus, wie im folgenden Screenshot gezeigt.
Sie können die dekodierte Ausgabe auch in einer Datei speichern, anstatt sie mit dem Umleitungsoperator (>) auf der Standardausgabe auszugeben. Der folgende Befehl dekodiert den kodierten Text und speichert den Originaltext in einer Datei mit dem Namen „decodedfile.txt“, die später mit dem Befehl cat angezeigt werden kann.
Kodierung von Benutzereingaben
Mit Hilfe der base64-Kodierung können wir beliebige vom Benutzer bereitgestellte Daten kodieren. Zu diesem Zweck müssen wir ein Skript erstellen, das Benutzereingaben entgegennimmt, sie mit der base64-Kodierung kodiert und die kodierten Daten auf der Standardausgabe ausgibt.
Erstellen Sie ein Skript „test.sh“ mit dem folgenden Code:
# Nachricht ausgeben, um nach Eingabe zu fragen
echo „Provide Some data to encode“
# Die Eingabe in eine Variable mit dem Namen „data“
read data
# Kodieren mit base64 Kodierung und die Ausgabe in eine Variable „encod_data“
encod_data=`echo -n $data | base64`
# Kodierte Ausgabe drucken
echo „Encoded text is : $encod_data“
Führen Sie das Skript wie folgt aus:
Nach dem Ausführen des Skripts werden Sie aufgefordert, die Daten einzugeben, die Sie kodieren möchten. Geben Sie einige Daten ein und drücken Sie die Eingabetaste, und Sie erhalten die kodierte Ausgabe auf dem Bildschirm.
Validierung des Benutzerschlüssels
Nun wollen wir uns ein Beispiel für die base64-Dekodierung ansehen. Wir werden die base64-Dekodierung verwenden, um die Gültigkeit des Benutzers zu überprüfen. Zu diesem Zweck erstellen wir ein Skript, das den Benutzer nach einem Schlüssel fragt. Dann gleicht es den eingegebenen Schlüssel mit dem vordefinierten Schlüssel ab, der zunächst durch die base64-Decodierung decodiert wird. Wenn der vom Benutzer eingegebene Schlüssel mit dem vordefinierten Schlüssel übereinstimmt, wird die Meldung „Sie haben einen gültigen Schlüssel eingegeben“ ausgegeben, andernfalls wird „Der von Ihnen eingegebene Schlüssel ist nicht gültig“ auf dem Bildschirm angezeigt.
Erstellen Sie ein Skript „test1.sh“ mit folgendem Code:
# Nachricht ausgeben, um zur Eingabe aufzufordern
echo „Geben Sie Ihren Schlüssel ein“
# Den vom Benutzer angegebenen Schlüssel in einer Variablen namens „key“
read key
# Den verschlüsselten Schlüssel (QWJjMTIzCg) dekodieren und die Ausgabe in einer Variablen namens „orig_key“ speichern
orig_key=`echo ‚QWJjMTIzCg==‘ | base64 –decode`
# Vergleiche den vom Benutzer eingegebenen Schlüssel mit dem dekodierten Schlüssel
if ; then
#wenn der Schlüssel übereinstimmt, drucke dies:
echo „Sie haben einen gültigen Schlüssel eingegeben“
else
#wenn Schlüssel nicht übereinstimmt, drucken Sie dies:
echo „Der eingegebene Schlüssel ist nicht gültig“
fi
Starten Sie das Skript wie folgt:
Nachdem Sie das Skript ausgeführt haben, werden Sie nach dem Schlüssel gefragt. Geben Sie den Schlüssel ein und drücken Sie die Eingabetaste. Wenn der eingegebene Schlüssel mit dem vordefinierten dekodierten Schlüssel übereinstimmt, erhalten Sie die Meldung „Sie haben einen gültigen Schlüssel eingegeben“, andernfalls wird die Meldung „Der eingegebene Schlüssel ist ungültig“ auf dem Bildschirm ausgegeben.
So können Sie base64 zum Kodieren und Dekodieren einer Zeichenkette oder einer Datei von der Befehlszeile aus verwenden. Die Ergebnisse können entweder auf der Standardausgabe ausgegeben oder in einer Datei gespeichert werden. Denken Sie jedoch daran, dass die Kodierung nicht mit der Verschlüsselung vergleichbar ist und dass die verschlüsselten Daten leicht aufgedeckt werden können. Daher wird nicht empfohlen, die Kodierung für die Übertragung sensibler Daten zu verwenden.