$ echo -n "apfjxkic-omyuobwd339805ak:60a06cd2ddfad610b9490d359d605407" | base64
YXBmanhraWMtb215dW9id2QzMzk4MDVhazo2MGEwNmNkMmRkZmFkNjEwYjk0OTBkMzU5ZDYwNTQw
Nw==
A saída tem um retorno antes Nw==
. Qual é a maneira correta de gerar base64 no Linux?
Respostas:
Experimentar:
De
man base64
:fonte
tr
. É bom saber que existe uma "maneira adequada".base64
codifica dados binários arbitrários como texto. As ferramentas que esperam texto geralmente leem uma linha por vez e podem não lidar bem com linhas muito longas . Se-w 0
fosse o padrão, você obteria por padrão apenas uma linha de texto; uma linha enormemente longa se a entrada for grande. É melhor agrupar por padrão. Eu acho que76
foi escolhido porque é um pouco menos do80
que é uma espécie de padrão de fato para terminais .base64
comando eu precisava passar o-w 0
(e quando eu esqueci, coisas estranhas podem acontecer ...), então esse comportamento padrão era muito estranho para mim.Isso é inferior à resposta de Kamil em sistemas que suportam a
-w
opçãobase64
, mas nos casos em que isso não está disponível (por exemplo, Alpine Linux, uminitramfs
gancho do Arch Linux , etc.), você pode processar manualmente a saída do base64:Essa é a abordagem da força bruta; em vez de fazer o programa cooperar, estou usando
tr
para retirar indiscriminadamente todas as novas linhas do stdout.fonte