Enkode dan dekode Base64

**URL:** `/base64-encode-decode/` **Schema:** `WebApplication` + `FAQPage` + `BreadcrumbList`

Semua perhitungan dijalankan di browser. Tidak ada yang Anda masukkan yang dikirim ke server.

01 kalkulator

Hasil diperbarui saat mengetik. Ctrl/Cmd+Enter menyalin hasil utama.

Hasil

    Tampilkan langkah

      Enkode dan Dekode Base64 mengonversi byte arbitrer menjadi string ASCII menggunakan alfabet RFC 4648, dan mengembalikan string tersebut ke byte asli. Mode teks menerima pengkodean karakter seperti UTF-8; mode file membaca unggahan melalui FileReader browser dan dapat mengeluarkan URI data: untuk disematkan. Pengkodean bukanlah enkripsi. Siapapun yang menerima string dapat memecahkan kodenya.

      Semua pengkodean dan decoding berjalan di browser Anda. Tidak ada yang Anda tempel yang dikirim ke server.

      Enkode teks atau file ke Base64

      Concept diagram: Masukan leads to Enkode teks atau file ke Base64 leads to HasilMasukanEnkode teks atau fileke Base64Hasil
      Enkode teks atau file ke Base64.

      Pengkodean mengambil byte mentah dan menulis string A hingga Z, a hingga z, 0 hingga 9, plus, garis miring, dan padding =. Tempel teks atau pilih file, pilih pengkodean karakter jika sumbernya berupa teks, dan baca hasilnya.

      Mode file sesuai dengan gambar dan dokumen kecil yang harus dimasukkan ke dalam JSON, XML, atau email tanpa saluran biner.

      Outputnya aman untuk diangkut melalui sistem yang merusak biner sewenang-wenang, seperti gateway email lama atau salin-tempel ke XML. Ini lebih panjang dari input berdasarkan desain. Input kosong yang tidak valid tidak menghasilkan string; alat menunggu byte sebelum mengeluarkan karakter.

      Dekode string Base64 kembali ke data

      Concept diagram: Masukan leads to Dekode string Base64 kembali ke da… leads to HasilMasukanDekode string Base64kembali ke da…Hasil
      Dekode string Base64 kembali ke data.

      Decoding membalikkan pencarian alfabet, membangun kembali aliran bit asli dan mengembalikan teks atau file yang dapat diunduh. Menambahkan karakter = di bagian akhir sangatlah penting: karakter tersebut menandai berapa banyak byte yang ada di grup akhir yang tidak lengkap. Karakter di luar alfabet menyebabkan kesalahan yang jelas, bukan dekode parsial yang diam.

      Spasi sering kali diabaikan sehingga string yang disalin dari sertifikat PEM atau badan MIME masih berfungsi. String yang terlihat seperti Base64 tetapi menggunakan alfabet aman URL memerlukan mode dekode aman URL, atau tanda hubung dan garis bawah akan ditolak karena ilegal dalam alfabet standar.

      Pahami cara kerja pengkodean Base64

      Process with 3 steps: Enter how Base64 encoding works; Read the main result; Check the breakdown1Enter how Base64encoding works2Read the main result3Check the breakdown
      Pahami cara kerja pengkodean Base64.

      Base64 memproses input dalam blok tiga byte (24 bit). 24 bit tersebut dibagi menjadi empat kelompok yang terdiri dari 6 bit. Setiap nilai 6-bit adalah indeks dari 0 hingga 63 ke dalam alfabet 64 karakter. Oleh karena itu, tiga byte masukan menjadi empat karakter keluaran.

      Bytes:  [ byte1 ][ byte2 ][ byte3 ]
      Bits:   aaaaaaaa bbbbbbbb cccccccc
      Groups: aaaaaa aabbbb bbbbcc cccccc
      Chars:  Char1  Char2  Char3  Char4

      Ketika tersisa kurang dari tiga byte, encoder masih mengeluarkan empat karakter tetapi menambahkan padding sehingga decoder mengetahui panjang aslinya. Pengelompokan ulang bit adalah keseluruhan algoritma; tidak ada checksum dan tidak ada kunci.

      Encode kata Anjing langkah demi langkah

      Process with 3 steps: Enter Encode word Dog step by step; Read the main result; Check the breakdown1Enter Encode word Dogstep by step2Read the main result3Check the breakdown
      Encode kata Anjing langkah demi langkah.

      Kata Dog berukuran tiga byte ASCII, sehingga mengisi satu grup Base64 dan dikodekan tanpa karakter padding. Output perlengkapannya adalah RG9n. Berjalan dari byte ke bit, mengelompokkan kembali menjadi indeks 6-bit, dan membaca alfabet RFC 4648 menunjukkan mengapa keempat karakter tersebut muncul dan bagaimana blok tiga byte mengikuti jalur yang sama.

      1. Tulis byte-nya. D = 0x44 = 01000100 o = 0x6F = 01101111 g = 0x67 = 01100111

      2. Gabungkan 24 bit. 01000100 01101111 01100111

      3. Bagi menjadi kelompok 6-bit. 010001 000110 111101 100111

      4. Ubah setiap grup menjadi indeks desimal. 17, 6, 61, 39

      5. Cari alfabet. Indeks 17 = R, 6 = G, 61 = 9, 39 = n

      Hasil: RG9n. Decoding RG9n mengembalikan tiga byte asli dan teks Dog di bawah UTF-8 atau ASCII.

      Pahami padding dengan tanda sama dengan

      Concept diagram: Masukan leads to Pahami padding dengan tanda sama d… leads to HasilMasukanPahami padding dengantanda sama d…Hasil
      Pahami padding dengan tanda sama dengan.

      Padding muncul ketika jumlah byte bukan kelipatan tiga. Satu byte sisa menghasilkan dua karakter alfabet dan dua tanda =. Dua byte sisa menghasilkan tiga karakter dan satu =. Perlengkapan DoRG8= dan DogsRG9ncw== menampilkan kedua kasus sisa di samping kata tiga byte yang tidak diisi Dog.

      InputBytesEncodedPadding
      Dog3RG9nnone
      Do2RG8=one =
      Dogs4RG9ncw==two =

      Do adalah dua byte: 01000100 01101111. Setelah pengelompokan 6-bit, hanya ada cukup bit untuk tiga karakter bermakna (RG8), dan satu padding = mengisi slot keempat. Dogs terdiri dari empat byte: grup tiga byte penuh dikodekan sebagai RG9n, lalu sisa satu byte dikodekan sebagai cw==. Menghapus padding dengan tangan tanpa menyesuaikan panjang bit akan merusak decoding; biarkan karakter = di tempatnya saat menempelkan.

      Membaca alfabet Base64

      Concept diagram: Masukan leads to Membaca alfabet Base64 leads to HasilMasukanMembaca alfabet Base64Hasil
      Membaca alfabet Base64.

      RFC 4648 mendefinisikan 64 karakter ditambah tanda padding =. Indeks 0 hingga 25 adalah A hingga Z, 26 hingga 51 adalah a hingga z, 52 hingga 61 adalah 0 hingga 9, indeks 62 adalah +, dan indeks 63 adalah /.

      Indeks 0 adalah A, bukan 0, yang membuat siapa pun yang mengharapkan angka memimpin alfabet akan tersandung.

      Index rangeKarakter
      0 to 25A to Z
      26 to 51a to z
      52 to 610 to 9
      62+
      63/
      padding=

      Panel alfabet kalkulator mencantumkan tabel yang sama dengan yang digunakan pembuat enkode, sehingga karakter yang mencurigakan dapat diperiksa berdasarkan kumpulan standar. String lengkapnya adalah ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/.

      Gunakan varian Base64 yang aman untuk URL

      Concept diagram: Masukan leads to Gunakan varian Base64 yang aman un… leads to HasilMasukanGunakan varian Base64yang aman un…Hasil
      Gunakan varian Base64 yang aman untuk URL.

      Alfabet aman URL (base64url) menggantikan + dengan - dan / dengan _. Padding mungkin dihilangkan di beberapa protokol. Token Web JSON menggunakan varian ini sehingga segmen token dapat ditempatkan di URL dan header HTTP tanpa mengkodekan persen karakter plus dan garis miring.

      String standar dan string aman-URL tidak dapat dipertukarkan. Decoding payload JWT dengan alfabet standar gagal pada tanda hubung. Alat ini menawarkan mode aman URL eksplisit untuk penyandian dan dekode. Pengkodean persen URL adalah masalah yang berbeda; gunakan halaman Enkode dan Dekode URL jika tujuannya adalah pelolosan RFC 3986, bukan Base64.

      Perhitungkan peningkatan ukuran

      Concept diagram: Masukan leads to Perhitungkan peningkatan ukuran leads to HasilMasukanPerhitungkanpeningkatan ukuranHasil
      Perhitungkan peningkatan ukuran.

      Setiap tiga byte menjadi empat karakter, sehingga panjang yang dikodekan adalah sekitar 4/3 dari input, peningkatan 33 persen sebelum jeda baris. Padding dapat menambahkan satu atau dua karakter tambahan pada grup terakhir. URI data dan lampiran email merasakan biaya ini dengan cepat: gambar berukuran 300 KB menjadi sekitar 400 KB teks.

      encoded_length ≈ 4 × ceil(byte_length / 3)

      Pembungkusan baris sebanyak 76 karakter, umum di MIME, menambahkan byte baris baru di atasnya. Lebih memilih lampiran biner atau format terkompresi ketika ukuran penting; gunakan Base64 ketika saluran benar-benar tidak dapat membawa byte mentah.

      Pilih pengkodean karakter

      Concept diagram: Masukan leads to Pilih pengkodean karakter leads to HasilMasukanPilih pengkodeankarakterHasil
      Pilih pengkodean karakter.

      Base64 mengkodekan byte, bukan karakter abstrak. Huruf yang sama menghasilkan byte berbeda pada UTF-8, UTF-16, Shift JIS atau Big5. Decoding kemudian menafsirkan dengan charset yang salah menghasilkan mojibake bahkan ketika lapisan Base64 sempurna, sehingga charset mode teks harus cocok dengan produsen pada encode dan konsumen pada decode.

      CharsetTypical use
      UTF-8Default for modern text and APIs
      Windows-1252Legacy Western European text
      UTF-16 LE / BESome Windows and Java payloads
      Shift JISOlder Japanese text
      Big5Older Traditional Chinese text

      Untuk kata Dog, ASCII dan UTF-8 menghasilkan tiga byte yang sama, jadi RG9n identik. Teks non-ASCII berbeda. Pilih rangkaian karakter yang cocok dengan produser sebelum pengkodean, dan rangkaian karakter yang sama setelah decoding, atau perjalanan bolak-balik akan terlihat seperti bug Base64 ketika kesalahan terjadi di bagian hulu.

      Pertanyaan yang sering diajukan

      Apakah enkripsi Base64?

      Tidak. Base64 adalah pengkodean yang dapat dibalikkan oleh siapa saja dengan alfabet publik. Itu tidak menyembunyikan apa pun. Gunakan algoritma kriptografi nyata ketika kerahasiaan diperlukan; gunakan Base64 ketika saluran membutuhkan byte aman ASCII.

      Mengapa keluaran Base64 diakhiri dengan tanda sama dengan?

      Karakter = adalah padding. Mereka menandai bahwa grup masukan terakhir memiliki satu atau dua byte, bukan tiga. Do dikodekan ke RG8= dan Dogs ke RG9ncw==. Simpan padding saat mendekode kecuali protokol mendokumentasikan bahwa padding tersebut telah dihapus.

      Untuk apa Dog mengkodekannya?

      Dog dikodekan ke RG9n tanpa padding, karena tiga byte mengisi satu grup Base64 dengan tepat. Pengelompokan ulang bit selangkah demi selangkah ditunjukkan pada contoh yang dikerjakan di halaman ini.

      Apa perbedaan antara Base64 standar dan aman-URL?

      Base64 yang aman untuk URL menggunakan - dan _, bukan + dan /. JWT dan beberapa penyematan nama file menggunakan alfabet yang aman untuk URL. Penguraian kode dengan alfabet yang salah gagal pada karakter yang diganti tersebut.

      Seberapa besar Base64 dari aslinya?

      Sekitar sepertiga lebih besar. Tiga byte menjadi empat karakter, jadi rasionya adalah 4/3 sebelum padding dan jeda baris. Payload 3.000 byte menjadi 4.000 karakter Base64.

      Bisakah Base64 menyandikan file, bukan hanya teks?

      Ya. Mode file membaca unggahan di browser dan mengkodekan byte mentahnya. Jalur sebaliknya diterjemahkan ke blob yang dapat diunduh. File besar meningkatkan penggunaan memori di tab; jaga agar unggahan tetap sederhana.

      Mengapa teks yang didekodekan terlihat salah setelah dekode yang benar?

      Lapisan Base64 memulihkan byte, namun pengkodean karakter yang digunakan untuk menafsirkan byte tersebut tidak cocok dengan produsen. Coba UTF-8 terlebih dahulu, baru rangkaian karakter yang benar-benar digunakan oleh sistem sumber.

      Apakah alat ini mengunggah rahasia yang ditempel?

      Tidak. Encoding dan decoding dijalankan secara lokal. Kunci API, token, dan fragmen sertifikat yang ditempelkan ke dalam kotak tidak dikirim ke server. Janji itu sesuai dengan aturan desain untuk semua halaman pengkodean di Kalkulator Cepat.

      Apakah Base64 sama dengan pengkodean URL?

      Tidak. Base64 memetakan biner ke alfabet 64 karakter untuk transportasi. Pengkodean URL (pengkodean persen) lolos dari karakter yang dicadangkan di dalam URI per RFC 3986. Karakter tersebut memecahkan masalah yang berbeda dan bukan merupakan pengganti satu sama lain.

      RFC apa yang mendefinisikan alfabet?

      RFC 4648 mendefinisikan alfabet Base64 standar dan aman untuk URL serta aturan padding yang digunakan di sini. Dokumen lama seperti RFC 2045 menjelaskan Base64 dalam konteks MIME dengan mekanisme serupa.

      Ringkasan

      Encode dan Decode Base64 memetakan byte ke alfabet RFC 4648 dalam grup 6-bit dan membalikkan proses secara lokal di browser. Dog menjadi RG9n, Do menjadi RG8=, dan Dogs menjadi RG9ncw==, yang menggambarkan padding untuk sisa satu dan dua byte.

      Alfabet aman-URL menukar +// dengan -/_, output bertambah sekitar sepertiga, dan pilihan rangkaian karakter menentukan byte mana yang dimasukkan mode teks ke dalam encoder. Tidak ada yang ditempelkan yang diunggah.