Encoder/Decoder Base64

Encoder/decoder Base64 gratis online untuk encoding dan decoding cepat, dengan fitur penanganan aman UTF-8, konversi URL-safe, pengisian otomatis, statistik real-time, dan fungsi salin yang aman. Menyediakan contoh kode multi-bahasa, pembuatan Data URI, panduan penggunaan terperinci, dan pertanyaan umum (FAQ). Antarmuka yang mudah digunakan dengan pengisian input dua arah, aksesibilitas keyboard, dan desain ramah seluler. Tidak perlu unduhan, langsung bekerja di browser Anda.

Encode (Teks → Base64)

Decode (Base64 → Teks)

Cara Menggunakan

Base64 mengkodekan data biner menjadi ASCII untuk transmisi dan penyimpanan yang aman. Ukuran meningkat sekitar 33%.
Enkode: Ubah teks biasa menjadi Base64 untuk transmisi yang aman.
Dekode: Kembalikan teks asli dari string Base64.

Fitur

  • Aman UTF-8: Menangani karakter non-ASCII dengan benar (dibungkus dengan encodeURIComponent/unescape).
  • Dukungan URL-safe: Beralih sekali klik antara + / → - _, opsional penghapusan padding =.
  • Pra-proses Sebelum Dekode: Abaikan spasi, konversi otomatis ke URL-safe, dan isi padding = secara otomatis.
  • Interaksi Real-time: Input diproses seketika, dengan statistik panjang dan tingkat pertumbuhan ditampilkan.
  • Kebergunaan: Salin cepat, isi dua arah antar input, aksesibilitas keyboard, ramah seluler.
  • Tema Konsisten: Tanpa kelas Tailwind dark: — sepenuhnya bergaya dengan tema DaisyUI.

Contoh Singkat

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

Apa itu Base64?

Base64 adalah metode pengkodean data biner menjadi teks ASCII, umum digunakan untuk mentransmisikan gambar atau konten file melalui protokol berbasis teks seperti JSON, XML, dan HTTP.

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

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

Kasus Penggunaan Umum

  • Sematkan gambar atau file kecil sebagai Data URI.
  • Transfer data biner antara klien dan server (misalnya, ciphertext terenkripsi, aliran terkompresi).
  • Ubah teks menjadi format yang dapat dicetak untuk menghindari inkonsistensi pengkodean atau karakter tak terlihat.

FAQ & Catatan Penting

  • Set karakter: Di lingkungan web, pertama-tama kodekan teks sebagai UTF-8 (alat ini menyertakan langkah ini secara otomatis).
  • URL-safe: Untuk parameter atau path URL, utamakan varian URL-safe dan pertimbangkan penghapusan karakter padding.
  • Padding: Beberapa implementasi mengizinkan penghilangan =; saat dekode, isi padding secara otomatis hingga kelipatan 4 karakter.
  • Baris baru: MIME Base64 mungkin menyertakan baris baru; pilih "Abaikan spasi" selama dekode untuk menanganinya.

Cara Encode/Decode Base64 dalam Bahasa Pemrograman

JavaScript
Teks → Base64 (Aman UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// Aman URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Decode (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
Encode (Teks → Base64)
$encoded = base64_encode($text);
// Aman URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Decode (Base64 → Teks)
$b64 = strtr($input, '-_', '+/');
// Tambahkan padding '=' secara otomatis
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Encode (Teks → Base64)
import base64

encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Encode Aman URL (Hapus Padding)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Decode (Base64 → Teks)
import base64

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

enc := base64.StdEncoding.EncodeToString([]byte(text))
// Encode Aman URL (Tanpa Padding)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Decode (Base64 → Teks)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// Decode Aman URL (Tanpa Padding)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Encode (Teks → Base64)
use base64::{engine::general_purpose, Engine as _};

let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Encode Aman URL (Tanpa Padding)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Decode (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
Encode (Teks → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Encode Aman URL (Tanpa Padding)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Decode (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...

Catatan: Hindari menggunakan Data URI untuk file besar, karena akan meningkatkan ukuran HTML/JSON secara signifikan dan menurunkan performa.