Übersicht
In diesem Tutorial lernen Sie, wie Sie base64-Kodierung und -Dekodierung über die Kommandozeile unter Linux durchführen. Sie werden auch erfahren, was base64-Kodierung ist und warum sie niemals verwendet werden sollte, um Daten vor unbefugtem Zugriff zu schützen.
Die base64-Kodierung und -Dekodierung von Daten hat viele Anwendungsfälle. Einer davon ist die Sicherstellung der Datenintegrität bei der Übertragung von Daten über das Netzwerk, ein anderer die Speicherung von Secrets in Kubernetes.
Nach dem Lesen dieses Tutorials werden Sie verstehen, wie Sie Dateien oder Strings einfach kodieren und wieder dekodieren können.
Wie man base64 unter Ubuntu, Debian, OSX und Red Hat kodiert
Wenn Sie gängige Linux-Distributionen wie Ubuntu, Debian, CentOS oder Red Hat verwenden, ist das Befehlszeilentool base64 in der Regel vorinstalliert. Sie sollten keine zusätzlichen Schritte durchführen müssen.
OSX wird ebenfalls mit einer eigenen Version von base64 ausgeliefert.
Warum Base64 Daten kodiert
Die Übertragung einer ASCII-Datei über das Netzwerk kann zu Beschädigungen führen, wenn sie nicht korrekt dekodiert wird. Der Grund dafür ist, dass ASCII-Dateien in Bytes umgewandelt werden, und wenn diese Bytes falsch zurück nach ASCII dekodiert werden, werden die Daten beschädigt.
Base64 wurde eingeführt, um ASCII-Daten in beliebige Bytes zu konvertieren, die dann als Bytes übertragen und korrekt zurück nach ASCII dekodiert werden können.
Kurz gesagt, stellt die Base64-Kodierung die Integrität unserer Daten sicher, wenn sie über das Netz übertragen werden.
Base64 ist keine Verschlüsselung
Die Kodierung von Dateien ist keine Verschlüsselung und sollte niemals dazu verwendet werden, sensible Daten auf der Festplatte zu sichern. Vielmehr ist es eine nützliche Methode, um große Daten in Form einer Zeichenkette zu übertragen oder zu speichern.
Während es die eigentlichen Daten vor Surfern verschleiern kann, kann jeder, der Zugang zu base64-kodierten Daten hat, diese leicht entschlüsseln.
Base64-Kodierung einer Zeichenkette
Um eine Zeichenkette mit base64 zu kodieren, kann man einen echo-Befehl in das base64-Befehlszeilentool leiten. Um sicherzustellen, dass keine zusätzlichen, versteckten Zeichen hinzugefügt werden, verwenden Sie das -n
-Flag.
Ohne das -n
-Flag können Sie versteckte Zeichen, wie Zeilenumbrüche oder Leerzeichen, einfangen, die Ihre base64-Kodierung beschädigen werden.
echo -n 'my-string' | base64
Das gibt folgendes aus
bXktc3RyaW5n
Base64 Kodierung einer Datei
Um eine Datei base64 zu kodieren
base64 /path/to/file
Das gibt einen sehr langen, base64 kodierten String aus. Sie können stattdessen den stdout in eine Datei schreiben.
bas64 /path/to/file > output.txt
Strings dekodieren
Um mit base64 zu dekodieren, müssen Sie das --decode
Flag verwenden. Mit der kodierten Zeichenkette können Sie einen Echo-Befehl in base64 leiten, wie Sie es für die Kodierung getan haben.
Anhand des oben gezeigten Beispiels dekodieren wir die Zeichenkette in ihre ursprüngliche Form zurück.
echo -n 'bXktc3RyaW5n' | base64 --decode
Wenn die Kodierung nicht beschädigt wurde, sollte die Ausgabe die ursprüngliche Zeichenkette sein.
Dekodierung von Dateien
Um eine Datei mit base64-kodiertem Inhalt zu dekodieren, geben Sie einfach den Pfad der Datei mit dem --decode
-Flag an.
base64 --decode /path/to/file
Wie bei der Kodierung von Dateien wird die Ausgabe eine sehr lange Zeichenkette der Originaldatei sein. Vielleicht möchten Sie stdout direkt in eine Datei ausgeben.
base64 --decode /path/to/file > output.txt
Abschluss
In diesem Tutorial haben Sie gelernt, wie man Dateien und Strings mit base64 kodiert. Das ist etwas, das häufig gemacht wird, um Dateien so zu übertragen, dass sie