UltKit

Penukar JSON ke Base64

Tukar fail JSON kepada satu baris teks Base64 yang selamat dalam pemboleh ubah persekitaran, medan YAML dan badan API, tempat tanda petik, kurungan kerinting dan pemisah baris boleh menimbulkan masalah. Apabila dinyahkod, anda mendapat semula bait yang sama persis.

Penukar Data

atau seret Fail CSV, TSV, TXT … ke sini ·

Maks 95 MB setiap fail· Sehingga 20 fail· Dipadam selepas 30 minit

Output

Fail diproses pada pelayan kami dan dipadam selepas 30 minit.

Cara menggunakan alat ini

  1. 1

    Muat naik fail JSON

    Tambah fail .json, .jsonl atau .ndjson, seperti kunci akaun perkhidmatan atau fail konfigurasi. Sehingga 20 fail setiap kelompok, 95 MB setiap satu.

  2. 2

    Tentukan awalan

    Base64 biasa telah ditetapkan. Hidupkan Awalan Data URI di bawah Tetapan lanjutan hanya jika teks itu akan dimasukkan ke dalam atribut HTML atau CSS yang memerlukan URL data:.

  3. 3

    Kodkan dan salin

    Tekan Tukar ke teks Base64, muat turun hasilnya dan tampal rentetan itu ke dalam stor rahsia, manifes atau badan permintaan anda.

Mengekod JSON sebagai Base64 tidak mengubah data; ia hanya membungkusnya semula sebagai huruf dan digit biasa supaya boleh melalui tempat yang akan merosakkan pendakap, petikan dan pemisah baris.

Mengapa kodkan fail JSON sebagai Base64

Kes yang paling biasa ialah fail kelayakan. Penyedia awan memberi anda kunci akaun perkhidmatan sebagai fail JSON, sedangkan sistem CI, papan pemuka pengehosan atau platform kontena anda hanya menyediakan medan teks satu baris untuk rahsia. Menampal JSON mentah akan gagal pada baris baharu pertama atau petikan pertama yang tidak dilepaskan. Apabila dikodkan sebagai Base64, kunci yang sama menjadi satu rentetan tanpa putus yang dinyahkod oleh aplikasi semasa dimulakan.

Base64 sendiri bermula daripada e-mel: MIME, yang ditakrifkan dalam RFC 2045 pada 1996, menggunakannya supaya lampiran dapat melalui pelayan mel yang hanya membawa teks 7-bit. Abjadnya kemudian diseragamkan secara berasingan dalam RFC 4648 pada 2006. Kosnya ialah saiz, kerana setiap 3 bait menjadi 4 aksara. Untuk gambar dan fail binari lain, Gambar ke Base64 melakukan pengekodan yang sama dengan data URI yang sepadan. Jika alat penerima membaca YAML dan bukan medan Base64, JSON ke YAML mungkin sudah memadai.

Contoh JSON ke Base64

JSON padat {"env":"prod","retries":3} dan pengekodan Base64nya
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Tempat JSON yang dikodkan Base64 diperlukan

Tempat yang hanya menerima JSON dalam bentuk Base64
OrganisasiKeperluanSumber
Kubernetes SecretsSetiap nilai di bawah data mestilah Base64; untuk memasang fail kunci JSON, kodkan dahulu.kubernetes.io
GitHub REST APITitik akhir cipta atau kemas kini kandungan fail menjangkakan fail, termasuk fail .json, sebagai Base64 dalam content.docs.github.com
JSON Web Tokens (RFC 7519)Pengepala dan tuntutan JSON masing-masing dikodkan dengan base64url dan disambung dengan titik.—
Lampiran e-mel (MIME)Lampiran .json dihantar dengan pengekodan pemindahan Base64 supaya dapat melalui pelayan mel teks sahaja.—
Base64Pengekodan Base 64 · Pengekodan RFC 4648
Cara menulis sebarang bait menggunakan 64 aksara selamat: A–Z, a–z, 0–9, + dan /, dengan = sebagai pelapik. Setiap kumpulan 3 bait input menjadi 4 aksara output, jadi teks itu kira-kira satu pertiga lebih panjang daripada fail. Ia boleh diterbalikkan dan tidak menggunakan kunci, menjadikannya format pengangkutan, bukan langkah keselamatan.

Fakta format JSON dan Base64

JSON

JavaScript Object Notation

JSON ialah format teks ringan untuk data berstruktur, dipopularkan oleh Douglas Crockford pada awal 2000-an dan dipiawaikan sebagai RFC 8259 dan ECMA-404. Ia mewakili objek, tatasusunan, rentetan, nombor, boolean dan null dengan sintaks yang mudah dibaca. Ia ialah format lalai untuk API web, fail konfigurasi dan pertukaran data antara aplikasi dalam hampir semua bahasa pengaturcaraan. Ia tidak mempunyai komen, tarikh atau skema terbina dalam, dan fail bersarang yang besar sukar dibaca tanpa pemapar.

Pemampatan
–
Ketelusan
–
Animasi
–
Diperkenalkan
2001 · Douglas Crockford
Penukar JSON

BASE64

Teks berkod Base64

Base64 ialah pengekodan, ditakrifkan dalam RFC 4648, yang menukar sebarang data perduaan kepada rentetan 64 aksara teks selamat. Ia digunakan untuk membenamkan imej dalam HTML dan CSS sebagai data URI, melampirkan fail pada e-mel, dan menghantar data perduaan dalam JSON atau XML. Pengekodan boleh diterbalikkan sepenuhnya tetapi menjadikan data kira-kira 33% lebih besar. Base64 bukan penyulitan dan tidak menawarkan keselamatan; sesiapa sahaja boleh menyahkodnya.

Pemampatan
Lossless (tanpa kehilangan)
Ketelusan
–
Animasi
–
Diperkenalkan
–
Penukar BASE64

JSON dikodkan sebagai Base64 apabila muatan berstruktur perlu dimuatkan dalam satu medan rentetan yang tidak boleh menerima petikan dan baris baharu mentah: rahsia CI, manifes Kubernetes, medan content sesuatu API atau nilai pengepala.

Soalan lazim JSON ke Base64

Adakah JSON yang dikodkan Base64 disulitkan?

Tidak. Base64 ialah pengekodan, dan sesiapa sahaja boleh menyahkodnya dengan satu arahan. Dokumentasi Kubernetes sendiri memberi amaran bahawa Secrets hanya dikodkan dengan Base64 dan disimpan tanpa penyulitan secara lalai, jadi lindungi rentetan yang dikodkan itu sama seperti anda melindungi kunci asal.

Perlukah saya guna Base64 atau base64url untuk token atau URL?

Base64 standard, seperti yang dihasilkan di sini, menggunakan + dan / serta pelapik =. JWT dan parameter URL menggunakan abjad base64url daripada RFC 4648, yang menggantikannya dengan - dan _ dan biasanya membuang pelapik. Gantikan ketiga-tiga aksara itu jika sasaran anda memerlukan base64url.

Perlukah saya memampatkan (minify) JSON sebelum mengekodnya?

Biasanya ya. Ruang, lekuk dan pemisah baris ialah bait seperti yang lain, dan setiap 3 bait menjadi 4 aksara dalam output. Memampatkan konfigurasi yang diformat dahulu, contohnya dengan jq -c, memendekkan rentetan terkod itu dengan sewajarnya.

Bagaimanakah cara menyahkod rentetan kembali ke JSON?

Pada macOS atau Linux jalankan base64 --decode, dalam PowerShell gunakan [Convert]::FromBase64String, dan dalam pelayar hantar hasil atob melalui TextDecoder supaya aksara UTF-8 dipulihkan dengan betul.

Mengapakah kubectl melaporkan illegal base64 data?

Nilai di bawah data dalam manifes Secret mestilah Base64 yang sah pada satu baris. Ralat ini biasanya bermakna pemisah baris terselit semasa menampal, atau JSON biasa diletakkan di bawah data. Nilai biasa patut diletakkan di bawah stringData, yang dikodkan oleh Kubernetes untuk anda.

Adakah pengekodan mengubah apa-apa dalam JSON saya?

Tidak. Base64 memetakan bait kepada teks dan sebaliknya tanpa kehilangan, jadi kunci, nilai, aksara beraksen malah tanda susunan bait di awal fail dipulihkan dengan tepat semasa penyahkodan.