$ echo -n "apfjxkic-omyuobwd339805ak:60a06cd2ddfad610b9490d359d605407" | base64
YXBmanhraWMtb215dW9id2QzMzk4MDVhazo2MGEwNmNkMmRkZmFkNjEwYjk0OTBkMzU5ZDYwNTQw
Nw==
Output sudah kembali sebelumnya Nw==
. Apa cara yang benar untuk menghasilkan base64 di Linux?
Jawaban:
Mencoba:
Dari
man base64
:sumber
tr
. Senang mengetahui ada "cara yang tepat".base64
mengkodekan data biner acak sebagai teks. Alat yang mengharapkan teks biasanya membaca satu baris pada satu waktu dan mungkin tidak berurusan dengan garis yang sangat panjang dengan baik . Jika-w 0
itu default, Anda akan mendapatkan secara default hanya satu baris teks; garis yang sangat panjang jika inputnya besar. Lebih baik untuk membungkus secara default. Saya pikir76
dipilih karena ini sedikit kurang dari80
yang merupakan semacam standar de-facto untuk terminal .base64
perintah yang saya butuhkan untuk lulus-w 0
(dan ketika saya lupa, hal-hal aneh dapat terjadi ...), jadi perilaku default ini sangat aneh bagi saya.Ini lebih rendah daripada jawaban Kamil pada sistem yang mendukung
-w
opsibase64
, tetapi untuk kasus-kasus ketika itu tidak tersedia (misalnya Alpine Linux,initramfs
hook Arch Linux , dll.), Anda dapat secara manual memproses output dari base64:Ini adalah pendekatan brute-force; alih-alih membuat program untuk bekerja sama, saya menggunakan
tr
untuk membongkar setiap baris baru di stdout.sumber