UltKit

Ubah JSON ke Base64

Ubah file JSON menjadi satu baris teks Base64 yang aman dipakai di variabel lingkungan, kolom YAML, dan body API, tempat tanda kutip, kurung kurawal, dan baris baru biasanya menimbulkan masalah. Saat di-decode, Anda mendapatkan kembali byte yang persis sama.

Konverter Data

atau jatuhkan file CSV, TSV, TXT … di sini ·

Maks. 95 MB per file· Hingga 20 file· Dihapus setelah 30 menit

Keluaran

File diproses di server kami dan dihapus setelah 30 menit.

Cara menggunakan alat ini

  1. 1

    Unggah file JSON

    Tambahkan file .json, .jsonl, atau .ndjson, misalnya kunci service account atau file konfigurasi. Hingga 20 file per batch, masing-masing 95 MB.

  2. 2

    Tentukan prefiks

    Base64 polos sudah dipilih. Aktifkan Prefiks data URI di Pengaturan lanjutan hanya jika teks akan dimasukkan ke atribut HTML atau CSS yang mengharapkan URL data:.

  3. 3

    Encode dan salin

    Tekan Konversi ke Teks Base64, unduh hasilnya, lalu tempelkan string tersebut ke penyimpanan secret, manifest, atau body permintaan Anda.

Meng-encode JSON ke Base64 tidak mengubah datanya; data hanya dikemas ulang sebagai huruf dan angka biasa agar bisa melewati tempat yang akan merusak kurung kurawal, tanda kutip, dan baris baru.

Mengapa file JSON perlu di-encode ke Base64

Kasus yang paling umum adalah file kredensial. Penyedia cloud memberi Anda kunci service account dalam bentuk file JSON, sementara sistem CI, dasbor hosting, atau platform container hanya menyediakan kolom teks satu baris untuk secret. Menempelkan JSON mentah akan gagal pada baris baru pertama atau tanda kutip pertama yang tidak di-escape. Setelah di-encode ke Base64, kunci yang sama menjadi satu string utuh yang di-decode aplikasi saat dijalankan.

Base64 sendiri berasal dari email: MIME, yang didefinisikan dalam RFC 2045 pada 1996, memakainya agar lampiran bisa melewati server email yang hanya membawa teks 7-bit. Alfabetnya kemudian distandarkan tersendiri dalam RFC 4648 pada 2006. Harganya adalah ukuran, karena setiap 3 byte menjadi 4 karakter. Untuk gambar dan file biner lain, Gambar ke Base64 melakukan encoding yang sama lengkap dengan data URI. Jika alat penerima membaca YAML, bukan kolom Base64, mungkin cukup dengan JSON ke YAML.

Contoh JSON ke Base64

JSON ringkas {"env":"prod","retries":3} dan hasil encode Base64-nya
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Tempat yang mengharuskan JSON dalam Base64

Tempat yang hanya menerima JSON sebagai Base64
OrganisasiPersyaratanSumber
Kubernetes SecretSetiap nilai di bawah data harus Base64; encode file kunci JSON terlebih dahulu sebelum di-mount.kubernetes.io
GitHub REST APIEndpoint untuk membuat atau memperbarui isi file mengharapkan file, termasuk file .json, dalam bentuk Base64 di content.docs.github.com
JSON Web Token (RFC 7519)Header dan klaim JSON masing-masing di-encode dengan base64url lalu digabung dengan titik.—
Lampiran email (MIME)Lampiran .json dikirim dengan transfer encoding Base64 agar lolos melewati server email yang hanya menerima teks.—
Base64Encoding Base 64 · Encoding RFC 4648
Cara menulis byte apa pun dengan 64 karakter aman: A–Z, a–z, 0–9, + dan /, dengan = sebagai padding. Setiap kelompok 3 byte masukan menjadi 4 karakter keluaran, sehingga teksnya sekitar sepertiga lebih panjang dari file. Encoding ini bisa dibalik dan tidak memakai kunci, jadi ini format pengiriman, bukan langkah keamanan.

Fakta format JSON dan Base64

JSON

JavaScript Object Notation

JSON adalah format teks ringan untuk data terstruktur, dipopulerkan oleh Douglas Crockford pada awal 2000-an dan distandardisasi sebagai RFC 8259 dan ECMA-404. Format ini merepresentasikan objek, array, string, angka, boolean, dan null dengan sintaksis yang sederhana dan mudah dibaca. JSON adalah format default untuk API web, file konfigurasi, dan pertukaran data antaraplikasi di hampir setiap bahasa pemrograman. JSON tidak memiliki komentar, tanggal, atau skema bawaan, dan file bersarang yang besar sulit dibaca tanpa penampil.

Kompresi
–
Transparansi
–
Animasi
–
Diperkenalkan
2001 · Douglas Crockford
Konverter JSON

BASE64

Teks berenkode Base64

Base64 adalah encoding yang didefinisikan dalam RFC 4648, yang mengubah data biner apa pun menjadi string dari 64 karakter teks yang aman. Encoding ini dipakai untuk menyematkan gambar dalam HTML dan CSS sebagai data URI, melampirkan file ke email, dan mengirim data biner dalam JSON atau XML. Encoding dapat dibalik sepenuhnya, tetapi membuat data sekitar 33% lebih besar. Base64 bukan enkripsi dan tidak memberikan keamanan apa pun; siapa saja dapat mendekodenya.

Kompresi
Lossless
Transparansi
–
Animasi
–
Diperkenalkan
–
Konverter BASE64

JSON di-encode ke Base64 ketika payload terstruktur harus dimuat di dalam satu kolom string yang tidak menerima tanda kutip dan baris baru mentah: secret CI, manifest Kubernetes, kolom content sebuah API, atau nilai header.

Pertanyaan seputar JSON ke Base64

Apakah JSON yang di-encode ke Base64 sudah terenkripsi?

Tidak. Base64 adalah encoding, dan siapa pun bisa men-decode-nya dengan satu perintah. Dokumentasi Kubernetes sendiri memperingatkan bahwa Secret hanya di-encode Base64 dan secara bawaan disimpan tanpa enkripsi, jadi lindungi string hasil encode persis seperti Anda melindungi kunci aslinya.

Apakah token atau URL dari JSON memerlukan Base64 atau base64url?

Base64 standar, seperti yang ditulis di sini, memakai + dan / serta padding =. JWT dan parameter URL memakai alfabet base64url dari RFC 4648, yang menggantinya dengan - dan _ dan biasanya membuang padding. Ganti ketiga karakter itu jika tujuan Anda mengharapkan base64url.

Perlukah JSON di-minify sebelum di-encode ke Base64?

Biasanya perlu. Spasi, indentasi, dan baris baru adalah byte seperti yang lain, dan setiap 3 byte menjadi 4 karakter keluaran. Memadatkan konfigurasi yang diformat rapi terlebih dahulu, misalnya dengan jq -c, akan memperpendek string hasil encode.

Bagaimana cara men-decode string Base64 kembali ke JSON?

Di macOS atau Linux jalankan base64 --decode, di PowerShell gunakan [Convert]::FromBase64String, dan di browser teruskan hasil atob ke TextDecoder agar karakter UTF-8 kembali dengan benar.

Mengapa kubectl melaporkan illegal base64 data?

Nilai di bawah data dalam manifest Secret harus berupa Base64 yang valid dalam satu baris. Galat ini biasanya berarti ada baris baru yang ikut tertempel, atau JSON polos diletakkan di bawah data. Nilai polos seharusnya ada di bawah stringData, yang di-encode otomatis oleh Kubernetes.

Apakah encoding Base64 mengubah isi file JSON saya?

Tidak. Base64 memetakan byte ke teks dan sebaliknya tanpa kehilangan apa pun, jadi key, nilai, karakter beraksen, bahkan byte order mark di awal file dipulihkan persis saat di-decode.