Kod dan nyahkod Base64

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

Semua pengiraan dijalankan dalam pelayar. Tiada apa yang anda masukkan dihantar ke pelayan.

01 kalkulator

Hasil dikemas kini semasa menaip. Ctrl/Cmd+Enter menyalin hasil utama.

Hasil

    Tunjuk kerja

      Base64 Encode dan Decode menukarkan bait arbitrari kepada rentetan ASCII menggunakan abjad RFC 4648 dan membalikkan rentetan itu kembali kepada bait asal. Mod teks menerima pengekodan aksara seperti UTF-8; mod fail membaca muat naik melalui FileReader penyemak imbas dan boleh mengeluarkan URI data: untuk dibenamkan. Pengekodan bukan penyulitan. Sesiapa sahaja yang menerima rentetan itu boleh menyahkodnya.

      Semua pengekodan dan penyahkodan berjalan dalam penyemak imbas anda. Tiada apa-apa yang anda tampal dihantar ke pelayan.

      Kod teks atau fail ke Base64

      Concept diagram: Input leads to Kod teks atau fail ke Base64 leads to HasilInputKod teks atau fail keBase64Hasil
      Kod teks atau fail ke Base64.

      Pengekodan mengambil bait mentah dan menulis rentetan A hingga Z, a hingga z, 0 hingga 9, tambah, slash dan padding =. Tampal teks atau pilih fail, pilih pengekodan aksara apabila sumbernya adalah teks, dan baca output.

      Mod fail sesuai dengan imej dan dokumen kecil yang mesti bergerak dalam JSON, XML atau e-mel tanpa saluran binari.

      Outputnya selamat untuk diangkut melalui sistem yang merosakkan binari sewenang-wenangnya, seperti gerbang mel lama atau salin-tampal ke dalam XML. Ia lebih panjang daripada input mengikut reka bentuk. Input kosong yang tidak sah tidak menghasilkan rentetan; alat menunggu bait sebelum mengeluarkan aksara.

      Nyahkod rentetan Base64 kembali kepada data

      Concept diagram: Input leads to Nyahkod rentetan Base64 kembali ke… leads to HasilInputNyahkod rentetan Base64kembali ke…Hasil
      Nyahkod rentetan Base64 kembali kepada data.

      Penyahkodan membalikkan carian abjad, membina semula aliran bit asal dan mengembalikan teks atau fail yang boleh dimuat turun. Mengalas aksara = pada penghujungnya adalah penting: ia menandakan bilangan bait yang berada dalam kumpulan terakhir yang tidak lengkap. Aksara di luar abjad menyebabkan ralat yang jelas dan bukannya penyahkod separa senyap.

      Ruang putih sering diabaikan jadi rentetan yang disalin daripada sijil PEM atau badan MIME masih berfungsi. Rentetan yang kelihatan seperti Base64 tetapi menggunakan abjad selamat URL memerlukan mod penyahkod selamat URL, atau tanda sempang dan garis bawah akan ditolak sebagai tidak sah dalam abjad standard.

      Fahami cara pengekodan Base64 berfungsi

      Process with 3 steps: Enter how Base64 encoding works; Read the main result; Check the breakdown1Enter how Base64encoding works2Read the main result3Check the breakdown
      Fahami cara pengekodan Base64 berfungsi.

      Base64 memproses input dalam blok tiga bait (24 bit). 24 bit tersebut dibahagikan kepada empat kumpulan 6 bit. Setiap nilai 6-bit ialah indeks dari 0 hingga 63 ke dalam abjad 64 aksara. Oleh itu, tiga bait input menjadi empat aksara keluaran.

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

      Apabila kurang daripada tiga bait kekal, pengekod masih mengeluarkan empat aksara tetapi menambah padding supaya penyahkod mengetahui panjang asal. Pengumpulan semula bit ialah keseluruhan algoritma; tiada checksum dan tiada kunci.

      Mengekod perkataan 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
      Mengekod perkataan Anjing langkah demi langkah.

      Perkataan Dog ialah tiga bait ASCII, jadi ia mengisi satu kumpulan Base64 dan mengekod tanpa aksara padding. Output lekapan ialah RG9n. Menjalankan bait ke bit, mengumpul semula ke dalam indeks 6-bit dan membaca abjad RFC 4648 menunjukkan sebab empat aksara tersebut muncul dan cara mana-mana blok tiga bait mengikut laluan yang sama.

      1. Tulis bait. D = 0x44 = 01000100 o = 0x6F = 01101111 g = 0x67 = 01100111

      2. Menggabungkan 24 bit. 01000100 01101111 01100111

      3. Bahagikan kepada kumpulan 6-bit. 010001 000110 111101 100111

      4. Tukarkan setiap kumpulan kepada indeks perpuluhan. 17, 6, 61, 39

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

      Keputusan: RG9n. Penyahkodan RG9n mengembalikan tiga bait asal dan teks Dog di bawah UTF-8 atau ASCII.

      Fahami padding dengan tanda sama

      Concept diagram: Input leads to Fahami padding dengan tanda sama leads to HasilInputFahami padding dengantanda samaHasil
      Fahami padding dengan tanda sama.

      Padding muncul apabila kiraan bait bukan gandaan tiga. Satu bait yang tinggal menghasilkan dua aksara abjad dan dua tanda =. Dua bait sisa menghasilkan tiga aksara dan satu =. Lekapan DoRG8= dan DogsRG9ncw== menunjukkan kedua-dua baki bekas di sebelah perkataan tiga bait Dog yang tidak berlapik.

      InputBytesEncodedPadding
      Dog3RG9nnone
      Do2RG8=one =
      Dogs4RG9ncw==two =

      Laku ialah dua bait: 01000100 01101111. Selepas pengumpulan 6-bit, terdapat hanya bit yang mencukupi untuk tiga aksara yang bermakna (RG8), dan satu padding = mengisi slot keempat. Anjing ialah empat bait: pengekodan kumpulan tiga bait penuh sebagai RG9n, kemudian pengekodan baki satu bait sebagai cw==. Mengeluarkan padding dengan tangan tanpa melaraskan pemecahan panjang bit penyahkodan; biarkan aksara = di tempatnya apabila menampal.

      Baca abjad Base64

      Concept diagram: Input leads to Baca abjad Base64 leads to HasilInputBaca abjad Base64Hasil
      Baca abjad Base64.

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

      Indeks 0 ialah A, bukan 0, yang menghalang sesiapa sahaja yang menjangkakan digit untuk mendahului abjad.

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

      Panel abjad kalkulator menyenaraikan jadual yang sama yang digunakan oleh pengekod, jadi aksara yang mencurigakan boleh disemak terhadap set standard. Rentetan penuh ialah ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/.

      Gunakan varian Base64 yang selamat untuk URL

      Concept diagram: Input leads to Gunakan varian Base64 yang selamat… leads to HasilInputGunakan varian Base64yang selamat…Hasil
      Gunakan varian Base64 yang selamat untuk URL.

      Abjad selamat URL (base64url) menggantikan + dengan - dan / dengan _. Padding mungkin ditinggalkan dalam beberapa protokol. Token Web JSON menggunakan varian ini supaya segmen token boleh berada dalam URL dan pengepala HTTP tanpa pengekodan peratus aksara tambah dan slash.

      Rentetan standard dan selamat URL tidak boleh ditukar ganti. Penyahkodan muatan JWT dengan abjad standard gagal pada tanda sempang. Alat ini menawarkan mod selamat URL yang jelas untuk pengekodan dan penyahkod. Peratusan pengekodan URL ialah masalah yang berbeza; gunakan halaman Pengekodan dan Nyahkod URL apabila matlamatnya ialah RFC 3986 melarikan diri daripada Base64.

      Akaun untuk peningkatan saiz

      Concept diagram: Input leads to Akaun untuk peningkatan saiz leads to HasilInputAkaun untuk peningkatansaizHasil
      Akaun untuk peningkatan saiz.

      Setiap tiga bait menjadi empat aksara, jadi panjang yang dikodkan adalah kira-kira 4/3 daripada input, peningkatan 33 peratus sebelum pemisah baris. Padding boleh menambah satu atau dua aksara tambahan pada kumpulan terakhir. URI data dan lampiran e-mel merasakan kos ini dengan cepat: imej 300 KB menjadi kira-kira 400 KB teks.

      encoded_length ≈ 4 × ceil(byte_length / 3)

      Pembalut baris pada 76 aksara, biasa dalam MIME, menambah bait baris baharu di atas. Lebih suka lampiran binari atau format termampat apabila saiz penting; gunakan Base64 apabila saluran benar-benar tidak boleh membawa bait mentah.

      Pilih pengekodan aksara

      Concept diagram: Input leads to Pilih pengekodan aksara leads to HasilInputPilih pengekodan aksaraHasil
      Pilih pengekodan aksara.

      Base64 mengekod bait, bukan aksara abstrak. Huruf yang sama menghasilkan bait yang berbeza di bawah UTF-8, UTF-16, Shift JIS atau Big5. Penyahkodan kemudian mentafsir dengan set aksara yang salah menghasilkan mojibake walaupun lapisan Base64 sempurna, jadi set aksara mod teks mesti sepadan dengan pengeluar pada pengekodan dan pengguna pada penyahkod.

      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 perkataan Dog, ASCII dan UTF-8 menghasilkan tiga bait yang sama, jadi RG9n adalah sama. Teks bukan ASCII menyimpang. Pilih set charset yang sepadan dengan pengeluar sebelum pengekodan, dan set charset yang sama selepas penyahkodan, atau perjalanan pergi balik akan kelihatan seperti pepijat Base64 apabila kesilapan berlaku di hulu.

      Soalan lazim

      Adakah penyulitan Base64?

      Tidak. Base64 ialah pengekodan yang boleh diterbalikkan oleh sesiapa sahaja dengan abjad awam. Ia tidak menyembunyikan apa-apa. Gunakan algoritma kriptografi sebenar apabila kerahsiaan diperlukan; gunakan Base64 apabila saluran memerlukan bait selamat ASCII.

      Mengapakah output Base64 berakhir dengan tanda sama?

      Aksara = adalah berlapik. Mereka menandakan bahawa kumpulan input akhir mempunyai satu atau dua bait dan bukannya tiga. Lakukan mengekod kepada RG8= dan Anjing kepada RG9ncw==. Simpan padding semasa menyahkod melainkan protokol mendokumenkan bahawa ia telah dilucutkan.

      Apakah yang dikodkan oleh Anjing?

      Anjing mengekod kepada RG9n tanpa padding, kerana tiga bait mengisi satu kumpulan Base64 dengan tepat. Pengumpulan semula bit langkah demi langkah ditunjukkan dalam contoh yang dikerjakan pada halaman ini.

      Apakah perbezaan antara Base64 standard dan selamat URL?

      Base64 yang selamat URL menggunakan - dan _ bukannya + dan /. JWT dan beberapa pembenaman nama fail menggunakan abjad selamat URL. Penyahkodan dengan abjad yang salah gagal pada aksara yang diganti itu.

      Berapa besarkah Base64 daripada yang asal?

      Kira-kira satu pertiga lebih besar. Tiga bait menjadi empat aksara, jadi nisbahnya ialah 4/3 sebelum padding dan pemisah baris. Muatan 3,000 bait menjadi 4,000 aksara Base64.

      Bolehkah Base64 mengekod fail, bukan sahaja teks?

      ya. Mod fail membaca muat naik dalam penyemak imbas dan mengekodkan bait mentahnya. Laluan terbalik menyahkod kepada gumpalan yang boleh dimuat turun. Fail besar meningkatkan penggunaan memori dalam tab; pastikan muat naik sederhana.

      Mengapa teks yang dinyahkod kelihatan salah selepas nyahkod yang betul?

      Lapisan Base64 memulihkan bait, tetapi pengekodan aksara yang digunakan untuk mentafsir bait tersebut tidak sepadan dengan pengeluar. Cuba UTF-8 dahulu, kemudian set charset yang sebenarnya digunakan oleh sistem sumber.

      Adakah alat ini memuat naik rahsia yang ditampal?

      Tidak. Pengekodan dan penyahkodan dijalankan secara setempat. Kunci API, token dan serpihan sijil yang ditampal ke dalam kotak tidak dihantar ke pelayan. Janji itu sepadan dengan peraturan reka bentuk untuk semua halaman pengekodan pada Kalkulator Pantas.

      Adakah Base64 sama dengan pengekodan URL?

      No. Base64 memetakan binari kepada abjad 64 aksara untuk pengangkutan. Pengekodan URL (pengekodan peratus) melepaskan aksara tersimpan di dalam URI setiap RFC 3986. Ia menyelesaikan masalah yang berbeza dan bukan pengganti antara satu sama lain.

      Apakah RFC mentakrifkan abjad?

      RFC 4648 mentakrifkan abjad Base64 standard dan selamat URL serta peraturan padding yang digunakan di sini. Dokumen lama seperti RFC 2045 menerangkan Base64 dalam konteks MIME dengan mekanik yang serupa.

      Ringkasan

      Base64 Encode dan Decode memetakan bait ke abjad RFC 4648 dalam kumpulan 6-bit dan membalikkan proses secara setempat dalam penyemak imbas. Dog menjadi RG9n, Do menjadi RG8= dan Dogs menjadi RG9ncw==, menggambarkan padding untuk baki satu dan dua bait.

      Abjad selamat URL menukar +// untuk -/_, output meningkat kira-kira satu pertiga dan pilihan set aksara menentukan bait mana yang disuakan oleh mod teks ke dalam pengekod. Tiada apa-apa yang ditampal dimuat naik.