GNU/Linux >> Belajar Linux >  >> Linux

base64 -d mendekode, tetapi mengatakan input tidak valid

Jika Anda melakukan sebaliknya, Anda akan melihat bahwa string tidak lengkap:

$ echo '{"foo":"bar","baz":"bat"}' | base64
eyJmb28iOiJiYXIiLCJiYXoiOiJiYXQifQo=

$ echo "eyJmb28iOiJiYXIiLCJiYXoiOiJiYXQifQo=" | base64 -di
{"foo":"bar","baz":"bat"}

Ekstrak dari Mengapa pengkodean base64 memerlukan padding jika panjang masukan tidak habis dibagi 3?

Apa yang dimaksud dengan Padding Characters?

Padding karakter membantu memenuhi persyaratan panjang dan tidak memiliki arti.

Namun, padding berguna dalam situasi di mana string berenkode base64 digabungkan sedemikian rupa sehingga panjang urutan individu hilang, seperti yang mungkin terjadi, misalnya, dalam protokol jaringan yang sangat sederhana.

Jika string yang tidak diberi bantalan digabungkan, tidak mungkin memulihkan data asli karena informasi tentang jumlah byte ganjil di akhir setiap urutan individu hilang. Namun, jika urutan empuk digunakan, tidak ada ambiguitas, dan urutan secara keseluruhan dapat didekodekan dengan benar.


Alat baris perintah pilih-pilih tentang keberadaan karakter padding. String itu panjangnya 34 karakter, jadi harus ada dua = tanda sebagai padding di bagian akhir.

$ echo "eyJmb28iOiJiYXIiLCJiYXoiOiJiYXQifQ==" | base64 -di; echo
{"foo":"bar","baz":"bat"}

Linux
  1. firefox:warna bidang masukan

  2. postfix/dovecot mengatakan pengaturan postmaster_address tidak diberikan tetapi memang demikian

  3. Atas mengatakan 100% CPU digunakan, tetapi 50% core menganggur?

  1. Grep:Konten {} Tidak Valid?

  2. Linux – Referensi Tapi Untuk Linux?

  3. Batalkan Penyelesaian, Tapi Hanya Penyelesaian, Di Zsh?

  1. Dd:Beberapa File Input?

  2. Opsi ABI tidak valid abi=aapcs-linux

  3. Mengaburkan string dengan Python