$ echo -n "apfjxkic-omyuobwd339805ak:60a06cd2ddfad610b9490d359d605407" | base64
YXBmanhraWMtb215dW9id2QzMzk4MDVhazo2MGEwNmNkMmRkZmFkNjEwYjk0OTBkMzU5ZDYwNTQw
Nw==
Die Ausgabe hat eine Rückkehr vor Nw==
. Was ist der richtige Weg, um base64 unter Linux zu generieren?
Antworten:
Versuchen:
Von
man base64
:quelle
tr
. Gut zu wissen, dass es einen "richtigen Weg" gibt.base64
kodiert beliebige Binärdaten als Text. Tools, die Text erwarten, lesen normalerweise jeweils eine Zeile und können sehr lange Zeilen möglicherweise nicht richtig verarbeiten . Wenn dies-w 0
die Standardeinstellung ist, erhalten Sie standardmäßig nur eine Textzeile. eine enorm lange Zeile, wenn die Eingabe groß war. Es ist besser, standardmäßig zu wickeln. Ich denke ,76
wurde gewählt , weil es ist etwas weniger als80
der ist eine Art De-facto - Standard für die Terminals .base64
Befehl verwendete, musste ich den Befehl übergeben-w 0
(und wenn ich vergaß, können seltsame Dinge passieren ...), so dass dieses Standardverhalten für mich sehr seltsam war.Dies ist Kamils Antwort auf Systemen unterlegen, die diese
-w
Option unterstützen. Inbase64
Fällen, in denen dies nicht verfügbar ist (z. B. Alpine Linux, ein Arch Linux-initramfs
Hook usw.), können Sie die Ausgabe von base64 manuell verarbeiten:Dies ist der Brute-Force-Ansatz; Anstatt das Programm zur Zusammenarbeit
tr
zu bewegen , verwende ich, um wahllos jede neue Zeile auf stdout zu entfernen.quelle