Menu

Encoder / Decoder Base64

Encode atau decode string dan file Base64 secara instan.

Oleh Nethanel Bar, Co-founder & CEO

Terakhir diperbarui

Siap benar-benar belajar coding?

Coddy mengajarimu dengan menulis kode sungguhan di browser: pelajaran interaktif, umpan balik instan, dan bantuan AI saat kamu buntu.

Apa itu Base64?

Base64 adalah skema encoding yang merepresentasikan data biner dengan 64 karakter yang bisa dicetak. Developer memakainya setiap kali sistem yang hanya menerima teks perlu membawa byte: gambar kecil yang disematkan di HTML, token, lampiran email, data URL, secret yang bisa disalin dari log, dan field JSON yang menyimpan blob biner.

Base64 adalah *encoding*, bukan enkripsi. Men-decode string Base64 biasanya langsung memperlihatkan isi aslinya, jadi Base64 tidak boleh dianggap sebagai pengaman. Apa pun di dalam Base64 pada dasarnya publik, kecuali sudah dienkripsi *sebelum* di-encode.

Di baliknya, Base64 mengambil 3 byte (24 bit) lalu menulisnya ulang sebagai 4 karakter dari alfabet tetap berisi 64 karakter (A sampai Z, a sampai z, 0 sampai 9, +, /). Ketika panjang input bukan kelipatan 3, encoder menambahkan satu atau dua karakter = di akhir sebagai padding. Itulah sebabnya string Base64 sering berakhir dengan =.

Yang akan kamu pelajari saat memakai Base64

  • Encoding mengubah cara data direpresentasikan; encoding tidak menyembunyikan atau melindungi data, karena siapa pun bisa men-decode-nya.
  • Output Base64 kira-kira 4/3 kali ukuran byte aslinya, jadi praktis tapi tidak hemat ruang.
  • Karakter padding seperti = melengkapi kelompok 4 karakter terakhir dan wajar ada di banyak string Base64.
  • Ada dua varian yang berkaitan: Base64 standar (memakai + dan /) dan Base64URL (memakai - dan _ sehingga aman di URL dan JWT).

Cara encode dan decode Base64 langkah demi langkah

  1. Pilih arah

    Pilih Encode kalau kamu punya teks biasa atau file dan ingin output Base64. Pilih Decode kalau kamu punya string Base64 dan ingin isi aslinya kembali.

  2. Tempel input atau letakkan file

    Tempel string ke kotak teks, atau seret file (gambar, PDF, apa saja) ke area drop. File diubah menjadi URL data: yang siap disematkan di HTML atau CSS.

  3. Baca output-nya

    Output encode adalah string Base64. Output decode adalah teks aslinya, atau kalau input-nya file, byte yang dipulihkan ditampilkan sebagai tautan unduhan.

  4. Salin hasilnya

    Klik tombol salin untuk menaruh hasilnya di clipboard. Semuanya berjalan di browser-mu, jadi input-mu tidak pernah meninggalkan perangkatmu.

Referensi cepat Base64

Bagian-bagian yang akan terus kamu temui begitu mulai bekerja dengan Base64, didefinisikan oleh RFC 4648.

ElemenArtiContoh
Alfabet64 karakter yang dipakai Base64 standarA–Z, a–z, 0–9, +, /
Alfabet aman untuk URLDipakai oleh JWT dan URLA–Z, a–z, 0–9, -, _
PaddingMelengkapi kelompok terakhir saat panjangnya bukan kelipatan 3= atau ==
Ukuran kelompokByte per potongan yang di-encode → 4 karakter output3 byte → 4 karakter
Pertambahan panjangOutput sekitar 33% lebih besar dari input100 B → 136 karakter
Data URLPenyematan file langsung untuk HTML/CSSdata:image/png;base64,...

Contoh Base64 untuk dicoba

Decode sebuah kata sederhana

Hasil encode

SGVsbG8gV29ybGQ=

Hasil decode

Hello World

Tanda = di akhir adalah padding karena Hello World berukuran 11 byte, yang bukan kelipatan 3. Proses decode selalu menghapusnya dengan benar.

Encode payload JSON kecil

Asli
{"role":"student","active":true}
Base64

eyJyb2xlIjoic3R1ZGVudCIsImFjdGl2ZSI6dHJ1ZX0=

Token JWT meng-encode setiap segmennya persis seperti ini. Itulah sebabnya payload JWT biasanya diawali eyJ, yaitu bentuk Base64 dari {".

Mengenali data URL

Data URL

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgAAIAAAUAAen8GVAAAAAASUVORK5CYII=

Awalannya menyatakan tipe media (image/png) dan encoding-nya (base64). Semua yang ada setelah koma adalah isi file. Berguna untuk gambar mungil yang dimuat bersama halaman.

Bandingkan alfabet standar dan aman untuk URL

Standar

Pj4/Pyc+Pg==

URL-safe

Pj4_Pyc-Pg

Base64 yang aman untuk URL menukar + dengan - dan / dengan _ supaya nilainya bisa berada di dalam URL tanpa perlu di-escape lagi. JWT memakai varian ini.

Kesalahan umum saat memakai Base64

  • Menyebut Base64 "terenkripsi". Siapa pun bisa men-decode-nya tanpa password atau kunci.
  • Lupa bahwa teks Unicode harus diubah menjadi byte UTF-8 *sebelum* di-encode ke Base64. Kalau tidak, karakter non-ASCII akan rusak saat dikonversi bolak-balik.
  • Menghapus padding = secara manual lalu memberikan hasilnya ke decoder ketat yang mengharapkannya. (Decoder aman untuk URL biasanya menerima padding yang hilang; decoder standar belum tentu.)
  • Menyematkan gambar besar sebagai Base64 di CSS atau HTML, padahal URL file biasa akan lebih kecil, lebih cepat, dan lebih mudah di-cache.

FAQ Base64

Apa itu encoding Base64?

Base64 adalah encoding yang merepresentasikan data biner sebagai teks yang bisa dicetak memakai alfabet 64 karakter. Base64 dipakai di mana pun byte perlu melewati sistem yang hanya menerima teks: API, JSON, JWT, email, dan data URL.

Bagaimana cara kerja Base64?
Base64 mengambil 3 byte input (24 bit) lalu membaginya menjadi empat kelompok 6 bit. Setiap kelompok 6 bit dipetakan ke salah satu dari 64 karakter. Kalau panjang input bukan kelipatan 3 byte, satu atau dua karakter = ditambahkan sebagai padding.
Bagaimana cara decode string Base64?
Tempel string-nya ke decoder Base64. Output-nya adalah teks atau file aslinya. Di kode, kebanyakan bahasa sudah menyediakan fungsi bawaan: atob() di browser, Buffer.from(str, 'base64') di Node.js, dan base64.b64decode() di Python.
Apakah Base64 aman?

Tidak. Base64 adalah encoding, bukan enkripsi. Base64 dirancang untuk representasi dan pengiriman, bukan untuk kerahasiaan. Kalau kamu butuh kerahasiaan, enkripsi datanya dulu, lalu encode ciphertext-nya ke Base64.

Kenapa Base64 kadang berakhir dengan =?
= adalah padding. Base64 menghasilkan 4 karakter untuk setiap 3 byte input. Ketika panjang input bukan kelipatan 3, satu atau dua = ditambahkan supaya panjang hasil encode tetap kelipatan 4.
Bisakah Base64 meng-encode gambar?
Bisa. Byte gambar bisa di-encode ke Base64 lalu dimasukkan ke URL data:image/png;base64,..., sehingga gambar tersemat langsung di HTML, CSS, atau JSON tanpa request jaringan terpisah.

Pelajari lebih lanjut

Alat developer lainnya

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai