Pengodean Base64: Cara Kerjanya
Ungkap misteri Base64—skema pengodean yang digunakan dalam email, JWT, dan transmisi data.
Pengodean Base64: Cara Kerjanya adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.
Mengapa Biner Memerlukan Representasi Teks
Banyak sistem, termasuk email, header HTTP, dan XML, dirancang untuk menangani teks, tetapi bukan data biner sembarang. Nilai byte 0x00 (null) atau 0x1A (karakter kontrol) dapat menyebabkan kegagalan penguraian atau kerusakan data.
Pengodean Base64 mengubah data biner sembarang menjadi subset karakter ASCII yang aman bagi sistem yang hanya menangani teks, sehingga konten biner seperti gambar dan sertifikat dapat disematkan dalam protokol berbasis teks.
Pengelompokan 6 Bit dari Byte 8 Bit
Base64 bekerja dengan mengambil tiga byte 8 bit (total 24 bit) dan membaginya menjadi empat kelompok 6 bit. Setiap kelompok 6 bit mewakili nilai dari 0 hingga 63, yang dipetakan ke satu karakter dalam alfabet Base64.
Rasio 3 banding 4 ini berarti setiap 3 byte masukan menghasilkan 4 karakter keluaran, sehingga ukuran bertambah 33%. Perhitungannya seimbang karena 3 byte = 24 bit = 4 kelompok yang masing-masing terdiri dari 6 bit.
Alfabet Base64
Alfabet Base64 memiliki 64 karakter: huruf besar A-Z (indeks 0-25), huruf kecil a-z (indeks 26-51), angka 0-9 (indeks 52-61), tanda tambah + (indeks 62), dan garis miring / (indeks 63).
Alfabet ini menghindari semua karakter kontrol dan sebagian besar tanda baca yang dapat menimbulkan masalah dalam sistem teks. Setiap karakter dalam keluaran Base64 merupakan karakter ASCII yang dapat dicetak dan aman digunakan dalam hampir semua protokol teks.
Pengisian dengan Tanda =
Jika panjang masukan bukan kelipatan 3 byte, diperlukan pengisian. Jika tersisa satu byte, byte tersebut diisi hingga menjadi kelompok 12 bit yang menghasilkan 2 karakter Base64, diikuti oleh "==". Jika tersisa dua byte, keduanya menghasilkan 3 karakter Base64, diikuti oleh "=".
Tanda pengisian = bukan data yang dikodekan; tanda tersebut memberi tahu pengurai kode bahwa blok terakhir lebih pendek dari 3 byte. Tanda itu memastikan panjang keluaran selalu merupakan kelipatan 4 karakter.
Contoh Pengodean: Man
Nilai ASCII untuk "Man" adalah M=77 (01001101), a=97 (01100001), n=110 (01101110). Digabungkan: 010011010110000101101110.
Dibagi menjadi kelompok 6 bit: 010011 | 010110 | 000101 | 101110 = 19 | 22 | 5 | 46. Setelah melihat alfabet Base64: 19=T, 22=W, 5=F, 46=u. "Man" dikodekan menjadi "TWFu".
Varian Base64url
Base64 standar menggunakan + dan / yang memiliki makna khusus dalam URL dan nama file. Base64url adalah varian yang mengganti + dengan - dan / dengan _, sehingga aman digunakan dalam URL, nama file, dan nilai kuki.
JWT (JSON Web Token) menggunakan pengodean Base64url untuk bagian header dan muatannya. Standar JOSE (JSON Object Signing and Encryption) sepenuhnya dibangun di atas Base64url.
Penggunaan Base64
Base64 digunakan dalam lampiran email MIME (mengodekan berkas biner untuk email berbasis teks), token JWT (mengodekan header dan muatan JSON), URI data dalam HTML (menyematkan gambar langsung dalam CSS/HTML), serta format PEM sertifikat X.509.
Format PEM (Privacy Enhanced Mail) membungkus sertifikat biner yang dikodekan DER dalam Base64, di antara header "-----BEGIN CERTIFICATE-----" dan "-----END CERTIFICATE-----".
Base64 Tidak Memberikan Keamanan
Base64 bukan enkripsi. Base64 adalah pengodean yang dapat dibalik dan tidak menggunakan kunci. Siapa pun yang melihat data yang dikodekan dalam Base64 dapat langsung mengurainya menggunakan alat yang tersedia secara bebas atau satu baris kode dalam bahasa pemrograman apa pun.
Kesalahan umum adalah mengira bahwa kata sandi atau token yang dikodekan dalam Base64 telah "disembunyikan". Kenyataannya tidak demikian. Jika Anda dapat mengurainya, penyerang juga dapat melakukannya. Keamanan memerlukan enkripsi, bukan pengodean.
Penguraian Kode Itu Mudah
Mengurai Base64 sama mudahnya dengan mengodekannya. Setiap kelompok Base64 yang terdiri dari 4 karakter dipetakan kembali ke nilai 6 bitnya, digabungkan, lalu dibagi menjadi byte. Pengisian = menunjukkan berapa banyak byte yang direpresentasikan oleh kelompok terakhir.
Dalam Python: import base64; base64.b64decode("TWFu") menghasilkan b"Man". Proses ini deterministik, tanpa kehilangan data, dan tidak memerlukan kunci atau rahasia.
Overhead dan Efisiensi Base64
Overhead ukuran Base64 sebesar 33% (4 byte keluaran untuk setiap 3 byte masukan), ditambah baris baru setiap 76 karakter (seperti yang diwajibkan oleh MIME), berarti Base64 tidak efisien untuk transfer biner berukuran besar.
Protokol biner modern seperti HTTP/2 dengan pembingkaian biner dan WebSockets dengan bingkai biner dapat menangani byte mentah secara langsung, sehingga menghilangkan kebutuhan akan Base64 dalam konteks berperforma tinggi.
Base32 dan Base58: Skema Pengodean Lain
Base32 menggunakan alfabet yang terdiri dari 32 karakter (A-Z dan 2-7), sehingga menghasilkan keluaran yang lebih panjang daripada Base64, tetapi tidak membedakan huruf besar dan kecil serta sesuai digunakan dalam konteks yang mungkin menghilangkan perbedaan huruf besar-kecil. Rahasia bersama TOTP sering dikodekan dalam Base32.
Base58, yang digunakan Bitcoin untuk alamat dompet, menghapus karakter yang secara visual mudah tertukar seperti 0, O, I, dan l. Hal ini mengurangi kesalahan penyalinan saat menyalin alamat. Konsekuensinya, Base58 bukan pangkat 2, sehingga pengodeannya sedikit lebih rumit.
Kuis Alfabet Base64
Uji pengetahuan Anda tentang pengodean Base64.
Inti Pembelajaran: Pengodean Base64
Base64 mengubah data biner menjadi teks dengan mengelompokkan bit ke dalam potongan 6 bit dan memetakannya ke alfabet yang terdiri dari 64 karakter. Base64 menghasilkan overhead ukuran sebesar 33% dan menggunakan pengisian = untuk jumlah byte yang bukan kelipatan 3.
Base64 tidak memberikan keamanan. Base64 digunakan untuk kompatibilitas transmisi, bukan kerahasiaan. Base64url (-/_) adalah varian yang aman untuk URL dan digunakan dalam JWT. Penguraian kode tidak memerlukan kunci dan berlangsung dalam hitungan milidetik.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pengodean Base64: Cara Kerjanya” gratis?
Ya — teks lengkap “Pengodean Base64: Cara Kerjanya” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pengodean Base64: Cara Kerjanya”?
Ungkap misteri Base64—skema pengodean yang digunakan dalam email, JWT, dan transmisi data. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cryptology Academy?
Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Pengodean Base64: Cara Kerjanya” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?
Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pengodean Base64: Cara Kerjanya
- ASCII, Unicode, dan Representasi Teks
- Heksadesimal dalam Keluaran Kriptografis
- Pengodean vs Enkripsi vs Pencincangan