Base45

Dipublikasikan: 11 Desember 2025

Terakhir diperbarui: 11 Desember 2025

Raymond Kelvin Nando — Base45 merupakan metode encoding biner-ke-teks yang memetakan data menjadi 45 karakter ASCII yang aman digunakan dalam lingkungan komunikasi yang terbatas, khususnya sistem QR Code berkapasitas rendah. Base45 menjadi terkenal setelah dipakai sebagai bagian dari standar EU Digital COVID Certificate (EUDCC), di mana ia berfungsi menghasilkan representasi data yang lebih ringkas dibanding Base32 maupun Base36, namun tetap mempertahankan kompatibilitas tinggi terhadap pemindai QR dan sistem transmisi yang hanya mendukung karakter tertentu.

Pengertian Base45

Base45 adalah skema encoding yang mengubah data biner ke urutan karakter teks menggunakan alfabet berjumlah 45 simbol. Alfabet Base45 (sesuai spesifikasi EUDCC) terdiri dari:

0–9
A–Z
spasi
$, %, *, +, -, ., /, :

Total 45 karakter.

Base45 mengelompokkan data dalam unit 11 bit (karena 45² = 2025, yang dapat menampung dua byte = 16 bit), dengan metode konversi yang memetakan pasangan byte ke dua atau tiga karakter Base45. Tujuan utama Base45 adalah memberikan encoding yang cukup padat untuk QR Code, namun tetap mudah didistribusikan melalui saluran teks seperti HTTP headers, string QR, atau media dengan compatibilitas karakter terbatas.

Base45 bukan algoritma enkripsi atau kompresi. Ini murni representasi-data, fokus pada efisiensi dan kemampuan transport.

Orang lain juga membaca :  Base16

Sejarah Perkembangan Base45

Base45 memiliki jejak historis yang jauh lebih modern dibanding Base16, Base32, atau Base64. Ia dikembangkan dan diformalkan dalam RFC 9285 pada tahun 2022 sebagai respons terhadap kebutuhan penyimpanan data efisien dalam QR Code.

Dalam masa pandemi COVID-19, Uni Eropa memperkenalkan EU Digital COVID Certificate, sistem identitas kesehatan digital berbasis QR. Sistem ini membutuhkan encoding yang cukup ringkas namun kompatibel dengan pembaca QR global. Base32 dan Base64 dianggap terlalu panjang atau tidak cocok karena set karakter yang berpotensi bermasalah pada QR. Base45 dipilih karena:

  • karakter yang relatif mudah diproses QR
  • panjang representasi yang lebih efisien
  • kompatibilitas dengan pipeline teks internasional
  • kemampuan memetakan byte ke output relatif pendek

Meskipun awalnya dikembangkan untuk EUDCC, Base45 kemudian diadopsi dalam berbagai ekosistem yang membutuhkan encoding teks aman, ringkas, dan highly portable.

Prinsip Dasar, dan Metode Base45

Base45 menggunakan konversi berbasis pembagian untuk memetakan byte ke angka basis-45 lalu ke karakter alfabet.

1. Alfabet Base45

Daftar karakter:

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:

Urutannya penting karena setiap indeks menentukan nilai 0–44.

2. Pengelompokan Data

Base45 bekerja pada blok byte:

  • 2 byte (16 bit) dikonversi menjadi 3 karakter
  • 1 byte (8 bit) dikonversi menjadi 2 karakter

Karena 45² = 2025, yang dapat menampung nilai hingga 16-bit (0–65535), maka:

nilai = byte1*256 + byte2
Kemudian:

c1 = nilai % 45
c2 = (nilai / 45) % 45
c3 = nilai / 45 / 45

3. Aturan Dekode

Dekode membalik proses:

nilai = c1 + c245 + c345*45

Jika 3 karakter → hasil 2 byte
Jika 2 karakter → hasil 1 byte

4. Karakter Aman QR

Semua karakter Base45 dapat diproses oleh pemindai QR standar tanpa risiko escape, encoding error, atau transformasi karakter.

Orang lain juga membaca :  ATSC A/53 Video Encoding

5. Tidak Ada Padding

Tidak seperti Base32/64, Base45 tidak memakai simbol “=” sebagai padding.

6. Fleksibel dan Reversible

Setiap output Base45 dapat dikonversi balik ke bentuk biner asli tanpa kehilangan data.

7. Tidak Untuk Kriptografi

Base45 tidak menyediakan keamanan; pada EUDCC, keamanan disediakan oleh COSE/CBOR dan signature digital, bukan Base45.

Contoh Input → Output Base45

Contoh 1: Encoding karakter tunggal

Input byte: 0x5A (90 desimal)
nilai = 90
c1 = 90 % 45 = 0
c2 = 90 / 45 = 2
Output: 02
Karakter ke-0 = 0
Karakter ke-2 = 2
Output Base45: 02

Contoh 2: Encoding dua byte

Input bytes: 0xAB 0xCD
nilai = 171256 + 205 = 43981
c1 = 43981 % 45 = 43981 mod 45 = 11
c2 = (43981 / 45) mod 45
c3 = 43981 / (45
45)
Output: karakter indeks c1, c2, c3

Misal: 11 = B, 34 = Y, 21 = L
Output: BYL
(Indeks sebenarnya tergantung alfabet Base45)

Contoh 3: Kata

Input: HELLO
Byte: 48 45 4C 4C 4F
Proses encoding blok demi blok menghasilkan string base45 seperti:
QED8WEX0
(variasi tergantung implementasi, tetapi pola 2–3 karakter per byte berlaku)

Contoh 4: Data biner

Input: 00 FF
nilai = 0256 + 255 = 255
c1 = 255 % 45 = 30 (U)
c2 = 255 / 45 = 5 (5)
c3 = 255 / (45
45) = 0 (0)
Output: U50

Contoh 5: Data EUDCC

Payload terserialisasi COSE/CBOR → hasil Base45 misalnya:
NCFOXN%TSMAHN-H7AG3
(Contoh representatif, bukan data asli)

Contoh 6: Decoding

Input: GGW
c1 = G (16), c2 = G (16), c3 = W (32)
nilai = 16 + 1645 + 3245*45
Hasil → dua byte

Contoh 7: Non-text data

Input bytes: 01 02 03
Output Base45: 19A06 (contoh pola blok)

Kelebihan & Kekurangan Base45

Kelebihan:

  • Lebih ringkas daripada Base32 dan Base36.
  • Sangat kompatibel untuk QR Code.
  • Hanya menggunakan karakter yang terjamin aman dalam berbagai encoding teks.
  • Konversi cepat dan deterministik.
  • Memungkinkan representasi biner dalam medium yang membatasi karakter.
  • Tidak membutuhkan padding.
  • Cocok untuk protokol modern seperti EUDCC.
Orang lain juga membaca :  Avro Binary Encoding

Kekurangan:

  • Lebih kompleks dibanding Base16 atau Base32.
  • Kurang padat dibanding Base58, Base62, atau Base64.
  • Tidak cocok sebagai encoding umum untuk file atau streaming besar.
  • Tidak memiliki checksum internal.
  • Tidak standar luas di luar area EUDCC dan penggunaan terbatas lainnya.
  • Tidak dirancang untuk keamanan kriptografi.
  • Lebih sedikit perpustakaan pendukung dibanding Base64.

Referensi

  • Fenner, B. (2022). Base45 Encoding. RFC 9285.
  • EU eHealth Network. EU Digital COVID Certificate Technical Specifications.
  • Josefsson, S. (2006). The Base16, Base32, and Base64 Data Encodings.
  • Tanenbaum, A. (2015). Modern Operating Systems.
  • Microsoft Documentation. Character Encoding in Data Transport Systems.

Citation

Previous Article

Base36

Next Article

Base58

Citation copied!