Enkoder dan dekoder Base64

Enkode dan dekode Base64: teks, file, URL-safe, dan data URI dengan pratinjau.

Apa yang dilakukan alat ini

Base64 adalah cara menuliskan data apa pun, teks atau biner, hanya dengan 64 karakter aman: huruf, angka, tanda plus, dan garis miring. Cara ini ada karena banyak sistem pembawa data seperti email, JSON, URL, dan atribut HTML hanya bisa diandalkan untuk teks biasa. Alat ini mengonversi dua arah. Enkode menerima teks yang Anda ketik atau file yang dibuka; Dekode menerima Base64 dan mengembalikan teks, atau file bila isinya bukan teks. Semuanya terjadi di peramban, jadi kunci privat, token, atau dokumen tidak pernah diunggah.

Cara memakai

  1. Pilih Enkode atau Dekode.
  2. Ketik atau tempel, tekan "Buka file", atau jatuhkan file ke halaman. Hasil muncul saat Anda mengetik.
  3. Salin atau unduh hasilnya. "Jadikan input" memindahkan hasil ke tab lain, cara cepat untuk memastikan bolak-balik menghasilkan aslinya.

Saat dekode, Anda tidak perlu membersihkan teks. Spasi dan baris baru diabaikan, = di akhir yang hilang ditambahkan, huruf URL-safe - dan _ diterima, dan data: URI utuh dibuka. Alat memberi tahu apa yang dilakukannya. Jika teks memang bukan Base64, alat menunjukkan karakter mana yang salah dan di mana.

UTF-8 dan jebakan karakter beraksen

Base64 mengenkode byte, bukan huruf, jadi teks harus menjadi byte lebih dulu. Alat ini memakai UTF-8, pengodean web. Kata café adalah lima byte 63 61 66 c3 a9 dan Base64-nya Y2Fmw6k=. Kesalahan umum adalah memasukkan teks itu ke fungsi lama btoa peramban, yang menganggap tiap karakter satu byte: hasilnya Y2Fm6Q==, yang dibaca sistem lain sebagai "caf" ditambah satu byte tidak valid, atau ditolak untuk karakter seperti Việt atau emoji. Teks "Hello, Việt Nam! 😀 café" di-enkode menjadi SGVsbG8sIFZp4buHdCBOYW0hIPCfmIAgY2Fmw6k= dan kembali utuh saat dekode.

Standar, URL-safe, padding, dan panjang baris

  • Standar memakai + dan /, yang punya arti di URL. Untuk URL, nama file, atau JWT pilih URL-safe, yang menulis - dan _. Byte fb ff fe ff adalah +//+/w== dalam bentuk standar dan -__-_w== dalam URL-safe.
  • Padding menambahkan = hingga kelipatan empat. Banyak penggunaan URL-safe, termasuk tiga bagian JWT, tidak memakainya; matikan. Header {"alg":"HS256","typ":"JWT"} adalah eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9, tanpa padding.
  • Panjang baris memotong keluaran menjadi baris 64 karakter (PEM, pada sertifikat dan kunci) atau 76 (MIME, pada lampiran email). Untuk keperluan lain, satu baris.

File, gambar, dan data URI

Buka file apa pun untuk di-enkode, hingga 20 MB. Aktifkan Sebagai data: URI untuk mendapat nilai siap tempel seperti data:image/png;base64,iVBOR…, berguna sebagai sumber <img> atau url() CSS. Cocok untuk ikon kecil, tetapi ukuran data bertambah sepertiga dan peramban tidak bisa menyimpannya di cache terpisah, jadi di atas beberapa kilobyte file biasa lebih baik; toolkit gambar dapat memperkecil gambar lebih dulu. Bila hasil dekode berupa gambar, Anda melihat pratinjau, dan yang bukan teks, seperti gambar, PDF, atau ZIP, ditawarkan untuk diunduh dengan ekstensi yang tepat.

Perlu diketahui

  • Base64 bukan enkripsi. Siapa pun bisa mendekodenya; jangan dipakai untuk menyembunyikan rahasia. Untuk memeriksa file tidak berubah, gunakan pemeriksa hash file.
  • Ukuran bertambah. Tiap 3 byte menjadi 4 karakter, sekitar 33% lebih besar; 1000 byte menjadi 1336 karakter termasuk padding.

Pertanyaan yang sering diajukan

Apakah Base64 itu enkripsi?

Bukan. Base64 hanya cara menulis byte sebagai teks dan siapa pun bisa membaliknya. Jangan dipakai untuk melindungi kata sandi atau rahasia.

Mengapa teks hasil dekode terlihat salah atau berisi karakter aneh?

Mungkin teks aslinya di-enkode dengan set karakter selain UTF-8, atau datanya memang bukan teks. Alat membaca hasil sebagai UTF-8 dan menawarkan unduhan bila byte bukan teks yang valid.

Apa beda Base64 dan Base64URL?

Base64URL mengganti + dengan - dan / dengan _ agar aman di URL dan nama file, dan biasanya membuang padding =. JWT memakainya. Alat ini membaca keduanya saat dekode dan dapat menulis keduanya saat enkode.

Apakah file saya diunggah?

Tidak. Halaman membaca dan mengonversi file di peramban Anda dan tidak mengirim apa pun ke mana pun.