Encoder dan Decoder Base32

Ubah teks, byte hex, atau file ke Base32 dan sebaliknya. Pilih alfabet RFC 4648, Base32hex, Crockford, atau z-base-32, serta atur padding dan huruf besar-kecil.

Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah.

Cara menggunakan

  1. Pilih Enkode untuk mengubah teks menjadi Base32, atau Dekode untuk mengubah Base32 kembali menjadi teks.
  2. Pilih Varian. RFC 4648 adalah default dan dipakai untuk kunci rahasia TOTP serta oleh sebagian besar library.
  3. Ketik atau tempel masukan Anda, atau klik Buka file. Hasilnya diperbarui saat Anda mengetik.
  4. Salin hasilnya atau unduh sebagai file.

Apa itu Base32?

Base32 merepresentasikan data biner dengan 32 karakter yang dapat dicetak. Setiap karakter membawa 5 bit, sehingga setiap 5 byte masukan menjadi 8 karakter keluaran. Keluarannya sekitar 60% lebih besar daripada masukan, overhead yang lebih besar daripada Base64, tetapi alfabetnya menghindari huruf kecil dan simbol yang mudah tertukar.

Alfabet standar yang didefinisikan dalam RFC 4648 menggunakan huruf A-Z dan digit 2-7. Digit 0, 1, 8, dan 9 sengaja tidak dipakai agar tidak tertukar dengan huruf O, I, dan B. Jika panjang masukan bukan kelipatan 5 byte, keluaran diberi padding = hingga kelipatan 8 karakter.

Penggunaan Base32

  • Autentikasi dua faktor. Kunci rahasia TOTP dan HOTP di aplikasi autentikator (nilai secret= dalam tautan otpauth://) berupa string Base32.
  • Sistem yang tidak peka huruf besar-kecil. Karena alfabetnya hanya memakai satu jenis huruf, Base32 tetap utuh di sistem file, label DNS, dan alamat email yang mengabaikan huruf besar-kecil.
  • Kode yang diketik manusia. Kunci lisensi, alamat onion, dan ID pendek memakai Base32 agar lebih mudah dibacakan dan diketik.

Jika ukuran lebih penting daripada keterbacaan, Base64 lebih ringkas. Jika Anda memerlukan ID pendek tanpa karakter yang membingungkan, bandingkan Crockford Base32 dan Base58.

Varian Base32

VarianAlfabetPenggunaan umum
RFC 4648A-Z 2-7Kunci rahasia TOTP, keperluan umum
Base32hex0-9 A-VUrutan sortir sama dengan byte mentah, DNSSEC NSEC3
Crockford0-9 A-Z tanpa I, L, O, UID yang mudah dibaca, ULID
z-base-32huruf kecil, urutan diubahKunci yang ramah manusia, OpenPGP WKD, ZRTP

Base32 dalam kode

# Python
import base64
base64.b32encode(b'hello')        # enkode
base64.b32decode('NBSWY3DP')      # dekode

// Node.js tidak memiliki Base32 bawaan; gunakan paket seperti "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)

Spesifikasi

AlfabetA-Z 2-7
Ukuran keluaran8 karakter per 5 byte (160%)
PaddingDiisi = hingga kelipatan 8 karakter
StandarRFC 4648 bagian 6
Peka huruf besar-kecilTidak

Contoh

Masukan (UTF-8)Keluaran
Hello, World!JBSWY3DPFQQFO33SNRSCC===
Base64.isIJQXGZJWGQXGS4Y=
你好4S62BZNFXU======

Pertanyaan yang sering diajukan

Apakah Base32 peka huruf besar-kecil?

Alfabet RFC 4648 didefinisikan dalam huruf besar, tetapi decoder ini juga menerima masukan huruf kecil. Gunakan opsi Huruf kecil jika Anda memerlukan keluaran huruf kecil.

Mengapa string Base32 saya diakhiri tanda =?

Tanda sama dengan adalah padding yang mengisi blok terakhir hingga 8 karakter. Banyak sistem, termasuk sebagian besar aplikasi TOTP, menerima Base32 tanpa padding. Matikan Padding untuk menghapusnya.

Seberapa besar Base32 dibandingkan data aslinya?

Setiap 5 byte menjadi 8 karakter, sehingga keluaran Base32 sekitar 1,6 kali ukuran masukan. Base64 sekitar 1,33 kali.

Bisakah saya mendekode kunci rahasia TOTP dengan alat ini?

Bisa. Tempel kunci rahasia tersebut di tab Dekode dan pilih keluaran Hex untuk melihat byte kunci mentahnya. Spasi di dalamnya diabaikan.