Pengekod/Penyahkod Base64

Pengekod penyahkod Base64 kami menukar teks kepada pengekodan Base64 dan sebaliknya dalam masa nyata. Tampal sebarang teks dan dapatkan versi berenkod Base64, atau tampal Base64 untuk menyahkodnya semula kepada teks yang boleh dibaca. Menyokong Base64 standard (RFC 4648) dan Base64 selamat URL. Mengendalikan aksara UTF-8, rentetan JSON, dan teks panjang. Semua pemprosesan dilakukan pada sisi pelayar — data anda tidak pernah meninggalkan pelayar anda.

star 4.9
auto_awesome AI
New

Pengekod Base64 calculator

0 characters
0 characters

lightbulb Tips

  • Base64 output is always ~33% larger than input
  • URL-safe Base64 uses - and _ instead of + and /
  • Base64 is encoding, NOT encryption
  • 3 input bytes = 4 Base64 characters

How to Use the Pengekod Base64

swap_horiz

Pilih Mod

Pilih Enkod untuk menukar teks kepada Base64, atau Nyahkod untuk menukar Base64 kembali kepada teks.

text_fields

Masukkan Input

Taip atau tampal teks anda (untuk pengekodan) atau rentetan Base64 (untuk penyahkoden).

content_copy

Dapatkan Keputusan

Hasil akan muncul serta-merta. Klik Salin untuk menyalin ke papan klip.

link

Pilihan Selamat untuk URL

Togol mod selamat untuk URL bagi menggunakan - dan _ menggantikan + dan / untuk output yang serasi dengan URL.

The Formula

Pengekodan Base64 menukar data binari kepada teks ASCII boleh cetak dengan membahagikan bait input kepada kumpulan 6-bit dan memetakan setiap kumpulan kepada salah satu daripada 64 aksara (A-Z, a-z, 0-9, +, /). Memandangkan 3 bait (24 bit) dipetakan kepada 4 aksara Base64, output adalah ~33% lebih besar daripada input. Padding (=) ditambahkan jika panjang input bukan gandaan 3.

Base64 = encode(input bytes) → 6-bit groups → A-Za-z0-9+/ alphabet

lightbulb Variables Explained

  • input bytes Bait teks input yang di-encode dalam UTF-8
  • 6-bit groups Input dipecahkan kepada bahagian 6-bit (berbanding bait 8-bit)
  • A-Za-z0-9+/ 64 aksara ASCII boleh cetak yang digunakan dalam abjad pengekodan
  • = (padding) Aksara padding yang ditambah untuk menjadikan panjang output sebagai gandaan 4

tips_and_updates Pro Tips

1

Output Base64 sentiasa ~33% lebih besar daripada input

2

Base64 selamat URL menggantikan + dengan - dan / dengan _ (berguna untuk URL dan nama fail)

3

Base64 adalah pengekodan, BUKAN penyulitan — sesiapa sahaja boleh menyahkodnya, jadi jangan sekali-kali menggunakannya untuk keselamatan

4

Gunakan Base64 untuk membenamkan imej kecil dalam HTML/CSS melalui URI data

5

Token Web JSON (JWT) menggunakan pengekodan Base64 selamat URL untuk pengepala dan muatan

6

Pelapik = di hujung boleh dibuang dengan selamat untuk Base64 selamat URL

7

Base64 mengendalikan data binari — inilah cara lampiran e-mel dihantar

Kalkulator dan alat decode encoder Base64 percuma kami menukar teks kepada Base64 dan kembali seperti asal serta-merta. Menyokong Base64 standard dan selamat untuk URL, aksara UTF-8, serta teks yang panjang. Semua pemprosesan berlaku dalam pelayar anda — data anda kekal peribadi.

Encoder Base64 - Teks ke Base64

Tukar sebarang teks kepada pengekodan Base64 serta-merta. Alat kami mengendalikan aksara UTF-8, rentetan JSON, HTML, dan sebarang input teks.

Salin output Base64 untuk digunakan dalam:

  • API
  • URI data
  • pengekodan e-mel
  • fail konfigurasi

Decoder Base64 - Base64 ke Teks

Nyahkod sebarang rentetan Base64 kembali kepada teks yang boleh dibaca. Tampal kandungan yang di-encode Base64 dan lihat teks asal serta-merta.

Menyokong:

  • Base64 standard
  • Base64 selamat untuk URL
  • Base64 dengan atau tanpa aksara padding

Bagaimanakah Pengekodan Base64 Berfungsi?

Pengekodan Base64 berfungsi dengan menukar data binari kepada set 64 aksara ASCII boleh cetak, seperti yang ditentukan dalam RFC 4648 daripada IETF.

Algoritma ini mengambil bait input dan mengumpulkannya semula daripada bait 8-bit kepada bahagian 6-bit, memandangkan 2 kuasa 6 bersamaan tepat dengan 64 nilai yang mungkin. Setiap kumpulan 6-bit dipetakan kepada satu aksara dalam abjad A-Z, a-z, 0-9, tambah, dan garis miring.

Oleh kerana setiap 3 bait input (24 bit) menjadi 4 aksara output, teks yang di-encode adalah kira-kira 33 peratus lebih besar daripada yang asal. Apabila panjang input bukan gandaan 3, satu atau dua tanda sama dengan dilampirkan sebagai padding, mengikut spesifikasi RFC 4648.

Adakah Base64 Itu Sulit (Encryption) atau Pengekodan (Encoding)?

Base64 adalah pengekodan, bukan penyulitan (encryption), dan ia menawarkan sifar keselamatan atau kerahsiaan. Sesiapa sahaja boleh menyahkod rentetan Base64 serta-merta kerana tiada kunci rahsia yang terlibat, dan pemetaan boleh balik didokumenkan secara terbuka dalam RFC 4648.

OWASP secara terang-terangan memberi amaran bahawa Base64 bukan pengganti kepada kriptografi dan tidak boleh digunakan untuk melindungi kata laluan, token, atau data peribadi. Satu-satunya tujuan adalah pengangkutan data binari yang selamat melalui saluran teks sahaja seperti e-mel, URL, dan JSON.

Untuk kerahsiaan sebenar, gunakan penyulitan bersetara seperti AES-256 seperti yang disyorkan oleh NIST, dan untuk integriti gunakan penghashan seperti SHA-256. Anggaplah sebarang rentetan Base64 dalam log anda sebagai teks biasa yang boleh dibaca sepenuhnya.

Apakah Pengekodan Base64 Selamat untuk URL?

Base64 selamat untuk URL ialah varian yang ditentukan dalam Seksyen 5 RFC 4648 yang menggantikan aksara tambah dengan tanda sempang dan aksara garis miring dengan garis bawah.

Penggantian ini penting kerana tanda tambah dan garis miring mempunyai makna rizab dalam URL dan laluan fail, di mana ia boleh disalahtafsirkan atau memerlukan pengekodan peratus. Abjad selamat untuk URL membolehkan nilai yang di-encode bergerak di dalam rentetan pertanyaan, segmen laluan, dan nama fail tanpa sebarang kerosakan.

Tanda sama dengan padding sering diabaikan dalam konteks ini, kerana decoder boleh menyimpulkan panjang asal. Token Web JSON (JSON Web Tokens), yang diterangkan dalam RFC 7519, bergantung pada pengekodan base64url ini untuk segmen pengepala dan muatan (payload) mereka, itulah sebabnya rentetan JWT tidak pernah mengandungi aksara tambah atau garis miring.

Mengapakah Base64 Meningkatkan Saiz Fail sebanyak 33 Peratus?

Base64 meningkatkan saiz data sebanyak kira-kira 33 peratus kerana ia mewakili setiap 3 bait input menggunakan 4 aksara output.

Tiga bait mengandungi 24 bit, dan Base64 membahagikan 24 bit tersebut kepada empat kumpulan 6-bit, jadi nisbah aksara 4-kepada-3 menambah satu pertiga kepada panjangnya, seperti yang dinyatakan dalam RFC 4648. Padding menambah sehingga dua aksara lagi pada blok akhir.

Overhead ini adalah pertukaran yang disengajakan untuk keserasian ASCII: data binari yang boleh merosakkan e-mel atau JSON menjadi selamat sepenuhnya sebagai teks. Menurut MDN Web Docs, inilah sebabnya mengapa membenamkan imej sebagai URI data Base64 menjadikan fail HTML dan CSS lebih besar dengan ketara berbanding memautkan fail binari asal secara terus.

Cara Mengekod Fail dan Imej kepada Base64

Untuk mengekod fail atau imej kepada Base64, bait mentah dibaca dan dilalui melalui algoritma standard RFC 4648, menghasilkan rentetan teks yang boleh anda benamkan secara terus dalam kod.

Kegunaan biasa ialah skema URI data yang didokumenkan oleh MDN Web Docs, di mana imej menjadi nilai src yang terkandung sendiri seperti data:image/png;base64 diikuti oleh bait yang dikodkan. Ini menghilangkan keperluan permintaan HTTP yang berasingan, yang boleh mempercepatkan pemuatan ikon kecil.

Walau bagaimanapun, kerana Base64 menambah saiz sebanyak 33 peratus dan tidak boleh di-cache secara berasingan, ia paling baik rizab untuk aset yang sangat kecil. Imej yang lebih besar, fon, dan PDF biasanya disajikan sebagai fail binari biasa berbanding Base64 terbenam.

Bagaimanakah Base64 Mengendalikan Aksara UTF-8 dan Unicode?

Base64 mengendalikan Unicode dengan mula-mula menukar teks kepada bait UTF-8, kemudian mengekod bait tersebut dengan abjad standard Base64. Base64 sendiri hanya beroperasi pada bait mentah, jadi langkah pengekodan aksara berlaku sebelum pengekodan dan selepas penyahkodan.

UTF-8, yang ditentukan dalam RFC 3629 dan diselenggara bersama Piawaian Unicode daripada Konsortium Unicode, mewakili emoji, ideograf CJK, dan huruf berakcent sebagai urutan pelbagai bait yang kemudiannya dipelihara tepat oleh Base64. Proses dua langkah inilah sebabnya alat kami mengembalikan aksara dengan betul seperti tanda euro atau emoji.

Dalam JavaScript, MDN Web Docs menyatakan bahawa fungsi btoa lama hanya menerima Latin-1, jadi kod moden mengekod kepada bait UTF-8 dengan TextEncoder sebelum memanggil btoa.

Untuk Apakah Base64 Digunakan dalam Aplikasi Sebenar?

Base64 digunakan di mana sahaja data binari mesti melalui sistem yang hanya mengendalikan teks.

  • Lampiran e-mel dikodkan Base64 di bawah standard MIME yang ditentukan dalam RFC 2045, iaitu cara imej dan dokumen bertahan dalam pengangkutan mel teks biasa.
  • Halaman web membenamkan imej kecil dan fon sebagai URI data Base64, seperti yang didokumenkan oleh MDN Web Docs.
  • JSON Web Tokens mengikut RFC 7519 mengekod tuntutan mereka sebagai rentetan base64url, dan Pengesahihan Asas HTTP, yang diterangkan dalam RFC 7617, mengekod Base64 pasangan nama pengguna dan kata laluan titik bertindih.
  • Base64 juga muncul dalam muatan API, sijil TLS dalam format PEM, dan fail konfigurasi.

Dalam setiap kes, matlamatnya adalah pengangkutan yang selamat dan tanpa kehilangan data berbanding mampatan atau keselamatan.

Kesilapan Pengekodan dan Penyahkodan Base64 Biasa

Kesilapan Base64 yang paling biasa adalah menganggapnya sebagai langkah keselamatan, sedangkan RFC 4648 menentukan transformasi yang boleh diterbalikkan sepenuhnya dan tanpa kunci yang boleh dinyahkod oleh sesiapa sahaja.

  • Satu lagi ralat yang kerap berlaku ialah mencampurkan abjad standard dan selamat URL, menyebabkan kegagalan penyahkodan apabila aksara tambah atau garis miring ditukar dengan tanda sempang dan garis bawah.
  • Padding tanda sama dengan yang hilang atau salah juga memecahkan penyahkod yang ketat, walaupun ramai, termasuk pelaksanaan MDN Web Docs, bertolak ansur dengan ketiadaan padding.
  • Pembangun selalunya lupa langkah UTF-8 dan mendapat teks yang bercelaru untuk input bukan ASCII.
  • Akhir sekali, mengekod data yang sudah ber-Base64 secara tidak sengaja menggandakan overhead.

Mengesahkan varian tepat, peraturan padding, dan set aksara terhadap spesifikasi RFC 4648 menghalang hampir semua kegagalan penyahkodan ini.

Base64 vs Base32 vs Pengekodan Heksadesimal

Base64, Base32, dan heksadesimal kesemuanya adalah pengekodan binari-ke-teks yang ditentukan bersama dalam RFC 4648, tetapi mereka menukar ketumpatan untuk kebolehbacaan secara berbeza.

  • Heksadesimal menggunakan 16 aksara dan menggandakan saiz data, menjadikannya yang paling mudah dibaca oleh manusia dan biasa dalam cincangan (hashes) dan kod warna.
  • Base32 menggunakan 32 aksara yang tidak sensitif huruf besar-kecil, mengembangkan data sebanyak kira-kira 60 peratus, dan mengelakkan simbol yang samar, yang sesuai untuk sistem yang tidak sensitif huruf besar-kecil dan rahsia TOTP.
  • Base64 adalah yang paling padat daripada ketiga-tiganya pada kira-kira 33 peratus overhead, menggunakan 64 aksara.

Pilih heksadesimal untuk penyahpepijatan dan pengecam pendek, Base32 apabila sensitiviti huruf besar-kecil adalah masalah, dan Base64 apabila kekompakan paling penting, seperti yang dijelaskan oleh panduan IETF dalam RFC 4648.

Frequently Asked Questions

sell

Tags