Base64 Encoder and Decoder

A free online Base64 encoder and decoder that quickly encodes and decodes Base64 data, with convenient features like UTF-8 support, secure copy, and clear.

Encode (teks → Base64)

Decode (Base64 → teks)

Panduan Penggunaan

Base64 mengkodekan data biner menjadi ASCII agar dapat ditransmisikan dan disimpan. Ukuran akan meningkat sekitar 33%.
Encode: Mengubah teks biasa menjadi Base64 agar lebih aman saat ditransmisikan.
Decode: Memulihkan teks asli dari string Base64.

Fitur

  • Aman untuk UTF-8: Menangani karakter non-ASCII dengan benar (menggunakan encodeURIComponent/unescape).
  • Dukungan URL-safe: Beralih satu kali klik dari + / ke - _, opsional hapus padding =.
  • Pra-proses decode: Dapat mengabaikan spasi, memulihkan otomatis URL-safe, dan menambahkan = secara otomatis.
  • Interaktif real-time: Input diproses otomatis, menampilkan statistik panjang dan pertumbuhan.
  • Kemudahan penggunaan: Salin cepat, isi hasil saling terhubung, dapat diakses lewat keyboard, ramah seluler.
  • Tema seragam: Tanpa kelas dark: Tailwind, sepenuhnya menggunakan tema DaisyUI.

Contoh Cepat

Teks asli:
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

Apa itu Base64

Base64 adalah cara mengkodekan data biner menjadi teks ASCII, sering digunakan untuk mentransmisikan konten gambar atau file dalam protokol teks seperti JSON, XML, dan HTTP.

Ini memetakan setiap 3 byte menjadi 4 karakter yang dapat dicetak, biasanya menyebabkan peningkatan ukuran sekitar 33%.

Base64 standar menggunakan A–Z a–z 0–9 + / dan karakter pengisi =; varian URL-safe mengganti + / dengan - _, untuk menghindari masalah escaping di URL.

Penggunaan Umum

  • Menyematkan gambar atau file kecil sebagai Data URI.
  • Mentransfer data biner antara klien dan server (seperti enkripsi kriptografi, aliran terkompresi).
  • Mengubah teks menjadi bentuk yang dapat dicetak untuk menghindari masalah inkonsistensi encoding atau karakter tak terlihat.

Pertanyaan Umum & Catatan Penting

  • Set karakter: Untuk lingkungan web, lakukan pemrosesan UTF-8 terlebih dahulu pada teks (alat ini sudah menyertakannya secara bawaan).
  • URL-safe: Untuk parameter atau jalur URL, disarankan menggunakan varian URL-safe dan pertimbangkan untuk menghapus karakter pengisi.
  • Karakter pengisi: Beberapa implementasi mengizinkan penghapusan =, namun saat dekode harus secara otomatis menambahkan hingga kelipatan 4.
  • Baris baru: MIME Base64 mungkin berisi baris baru, saat dekode Anda bisa centang "abaikan karakter kosong".

Cara melakukan encode dan decode Base64 melalui bahasa pemrograman

JavaScript
Teks → Base64 (aman UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// URL-safe
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Dekoding (Base64 → Teks)
// Pra-pemrosesan: Ganti -_ dengan +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
Enkoding (Teks → Base64)
$encoded = base64_encode($text);
// URL-safe
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Dekoding (Base64 → Teks)
$b64 = strtr($input, '-_', '+/');
// Tambahkan '=' secara otomatis
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Enkoding (Teks → Base64)
import base64

encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Enkoding URL-safe (tanpa padding)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Dekoding (Base64 → Teks)
import base64

def b64_decode(s: str) -> str:
    s = s.replace('-','+').replace('_','/')
    s += '=' * (-len(s) % 4)  # Tambahkan '=' secara otomatis
    return base64.b64decode(s).decode('utf-8')
Go
Enkoding (Teks → Base64)
import (
    "encoding/base64"
)

enc := base64.StdEncoding.EncodeToString([]byte(text))
// Enkoding URL-safe (tanpa padding)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Dekoding (Base64 → Teks)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// Dekoding URL-safe (tanpa padding)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Enkoding (Teks → Base64)
use base64::{engine::general_purpose, Engine as _};

let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Enkoding URL-safe (tanpa padding)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Dekoding (Base64 → Teks)
use base64::{engine::general_purpose, Engine as _};

let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();

let url_dec = String::from_utf8(
    general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
Dependensi Cargo: base64 = "0.22"
Java
Enkoding (Teks → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Enkoding URL-safe (tanpa padding)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Dekoding (Base64 → Teks)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);

Contoh Data URI

Sematkan gambar atau file kecil sebagai Data URI:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

Perhatian: Jangan gunakan Data URI untuk file besar, karena akan meningkatkan signifikan ukuran HTML/JSON dan memengaruhi kinerja.