$ echo -n "apfjxkic-omyuobwd339805ak:60a06cd2ddfad610b9490d359d605407" | base64
YXBmanhraWMtb215dW9id2QzMzk4MDVhazo2MGEwNmNkMmRkZmFkNjEwYjk0OTBkMzU5ZDYwNTQw
Nw==
La sortie a un retour avant Nw==
. Quelle est la bonne façon de générer base64 sous Linux?
Réponses:
Essayer:
De
man base64
:la source
tr
. C'est bon de savoir qu'il y a un "bon chemin".base64
code les données binaires arbitraires sous forme de texte. Les outils qui attendent du texte lisent généralement une ligne à la fois et peuvent ne pas traiter correctement les longues lignes . Si-w 0
était la valeur par défaut, vous obtiendriez par défaut une seule ligne de texte; une ligne extrêmement longue si l'entrée était grande. Il vaut mieux envelopper par défaut. Je pense avoir76
été choisi parce que c’est un peu moins que80
ce qui est une sorte de standard de facto pour les terminaux .base64
commande, je devais passer le mot-w 0
(et quand j'oubliais, des choses étranges peuvent se produire ...), donc ce comportement par défaut était très étrange pour moi.Ceci est inférieur à la réponse de Kamil sur les systèmes qui prennent en charge l'
-w
optionbase64
, mais dans les cas où cela n'est pas disponible (par exemple, Alpine Linux, uninitramfs
hook Arch Linux , etc.), vous pouvez traiter manuellement la sortie de base64:C'est l'approche de la force brute; au lieu de faire coopérer le programme, j’utilise
tr
pour effacer sans distinction toutes les nouvelles lignes sur stdout.la source