Langsung ke konten utama
PulsarKit

Base64 encode dan decode

Encode teks atau file ke Base64, atau decode kembali, lengkap dengan alfabet URL-safe, Data URI, dan pemotongan baris MIME.

Letakkan file di sini

.txt, .b64, .base64 · hingga 150 MB

Cara encode dan decode Base64

  1. 1

    Pilih encode atau decode

    Layar yang sama bekerja ke dua arah. Arah konversi adalah hal pertama yang Anda atur, agar encode tidak terjadi dua kali tanpa sengaja.

  2. 2

    Tempel teks atau letakkan file

    Encode bisa dilakukan untuk jenis file apa pun; decode menerima string yang ditempel, Data URI, atau file teks yang berisi salah satunya.

  3. 3

    Salin atau unduh hasilnya

    Hasil decode otomatis dikenali sebagai teks atau biner, lalu diberi nama dengan ekstensi yang tepat.

Untuk apa Base64, dan untuk apa bukan

Base64 ada karena beberapa saluran hanya bisa membawa teks yang dapat dicetak: isi email, kolom string JSON, atribut HTML, header HTTP. Setiap tiga byte dipetakan ke empat karakter dari alfabet 64 karakter, dan karena itu hasilnya selalu sekitar sepertiga lebih besar daripada data aslinya. Base64 adalah pengodean, bukan enkripsi: siapa pun bisa melakukan decode tanpa kunci, dan alfabetnya publik. Bila isinya rahasia, Base64 sama sekali tidak melindunginya, dan token yang ditempel ke kolom Base64 sama terbukanya setelah encode seperti sebelumnya.

Data URI dan alfabet URL-safe

Data URI membungkus byte hasil encode dengan awalan yang menyebut jenis medianya, sehingga data:image/png;base64,… bisa langsung dipakai sebagai sumber gambar atau latar belakang di CSS. Saat encode file, jenis media diambil dari file itu sendiri; saat encode teks yang ditempel, Anda yang menentukannya. Alfabet URL-safe mengganti + dan / dengan - dan _, serta membuang karakter pengisi (padding) di akhir, karena ketiga karakter itu punya arti sendiri di dalam URL atau nama file. Decode menerima kedua alfabet tanpa perlu diberi tahu yang mana, dan sama sekali mengabaikan jeda baris, jadi string yang dipotong per baris ala MIME maupun PEM bisa ditempel apa adanya.

Pesan kesalahan yang tepat, bukan hasil ngawur tanpa peringatan

String Base64 yang berisi karakter di luar alfabet, atau yang panjangnya menyisakan satu bila dibagi empat, tidak bisa menghasilkan apa pun yang bermakna. Daripada mengembalikan byte yang terpotong, alat ini melaporkan posisi karakter yang bermasalah agar mudah ditemukan di string yang panjang. Data URI yang memakai percent-encoding, bukan Base64, adalah kasus nyata yang membingungkan, karena keduanya diawali data:. String seperti itu dikenali dan diarahkan ke URL encoder dan decoder, bukan dibaca sebagai Base64 lalu menghasilkan data sampah.

Encode di browser Anda, bukan di server

Konversi berjalan sepenuhnya di tab ini dengan fungsi dasar bawaan browser, sepotong demi sepotong agar file besar tidak menghabiskan memori. Tidak ada yang diunggah, dan itu penting karena data Base64 sering berisi sertifikat, kunci, dan dokumen pribadi.

Pertanyaan yang sering diajukan

Apakah Base64 termasuk enkripsi?

Tidak. Base64 adalah pengodean yang bisa dibalik, dengan alfabet publik dan tanpa kunci. Siapa pun yang memegang string itu bisa memulihkan byte aslinya, jadi Base64 tidak melindungi apa pun; Base64 hanya membuat data biner aman dibawa lewat saluran yang hanya menerima teks.

Apa itu Data URI?

String yang membawa jenis media sebuah file sekaligus isinya dalam Base64, misalnya data:image/png;base64,iVBOR… String ini bisa langsung dipakai sebagai sumber gambar atau latar belakang di CSS, sehingga aset kecil tidak memerlukan permintaan jaringan terpisah.

Mengapa saya perlu alfabet URL-safe?

Karena + dan / punya arti di dalam URL dan nama file, dan = punya peran sendiri di query string. Varian URL-safe memakai - dan _ sebagai gantinya dan menghilangkan padding, dan bentuk itulah yang diharapkan JWT dan banyak API.

Mengapa hasilnya sepertiga lebih panjang daripada aslinya?

Tiga byte memang dirancang menjadi empat karakter, jadi hasilnya berukuran 4/3 dari aslinya sebelum ada jeda baris. Tambahan itu adalah harga untuk hanya memakai karakter yang dapat dicetak.

Bagaimana cara decode ke file, bukan ke teks?

Mode otomatis sudah melakukannya: bila byte hasil decode bukan teks UTF-8 yang valid, Anda mendapatkan file. Anda juga bisa memaksa hasil berupa file dan menentukan nama file, dan ekstensinya dikoreksi dari jenis media bila Data URI menyertakannya.

Mengapa muncul kesalahan karakter tidak valid?

Karena string berisi sesuatu di luar alfabet Base64, sering kali tanda kutip yang tersesat atau entitas HTML yang ikut tersalin, atau karena string itu terpotong. Posisi yang dilaporkan menunjuk tepat ke karakter yang perlu diperiksa.

Apakah file saya diunggah?

Tidak. Encode maupun decode berjalan secara lokal di browser Anda dengan fungsi bawaan, tanpa pustaka dan tanpa server, dan tidak ada yang disimpan setelah tab ditutup.

Alat terkait