Mengenal Encoding pada Base64

Di posting ini kita akan membahas mengenai apa itu Base64, kenapa disebut Base64, dan bagaimana proses pengkodeannya.

 

matrix-moving-wallpaper_small_text


Oke, untuk pertanyaan pertama: ‘Apa itu Base64?’

Merujuk ke Wikipedia, base64 adalah istilah umum untuk sejumlah pengkodean (encode) serupa yang mengkodekan data biner dari ASCII lalu menerjemahkannya ke dalam representasi basis 64. Hm.. Yeah, sedikit membingungkan memang. Mudahnya, Base64 itu adalah metode untuk melakukan pengkodean terhadap data biner (sistem bilangan basis 2) ASCII lalu mengubahnya ke sistem bilangan basis 64.


Kedua: ‘Kenapa disebut Base64?’

Seperti yang sudah disebutkan, bahwa Base64 akan mengubah biner ke sistem bilangan basis 64. Karena itu base64 terdiri dari 64 simbol, yaitu mulai dari A-Z, a-z, 0-9, dan dua tanda baca ‘+’ dan ‘/’. Selain itu terdapat juga satu karakter tambahan yaitu ‘=’, yang berfungsi untuk menggenapkan atau sebagai pengisi pad (dibawah akan saya bahas mengenai pad). Berikut ini ke-64 simbol dan nilainya:

1

Sedikit mengenai sistem bilangan, sistem bilangan adalah sebuah atau kumpulan simbol yang merepresentasikan sebuah bilangan. Kita pernah membahasnya disini.


Ketiga: ‘Bagaimana proses pengkodeannya?’

Oh iya, sebelumnya bedakan antara encryption dan encode. Encryption adalah proses mengamankan seuatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan khusus. Terdapat sebuah kunci dalam proses encryption. Sedangkan encode (pengkodean) adalah proses konversi informasi menjadi bentuk representasi lain.

Contoh: Kita akan meng-encode kata Man menggunakan metode Base64

Langkah Pertama

Ubah huruf-huruf tersebut menjadi kode ASCII, secara berurutan huruf M, a, dan n, nilai desimal ASCII nya yaitu 77, 97, 110. Kalian bisa lihat tabel ASCII di Wikipedia.

2
 

Langkah Kedua

Ubah angka-angka desimal tersebut menjadi biner dengan panjang 8 bit:

  • 77 = 01001101
  • 97 = 01100001
  • 110 = 01101110

3

Sebenarnya nilai ASCII itu sendiri terdiri dari 8 bit biner. Saya mengubahnya ke desimal dahulu agar memudahkan saja. By the way, kalian bisa lihat bagaimana cara cepat mengubah desimal ke biner disini.
 

Langkah Ketiga

Selanjutnya, gabungkan ketiga byte tersebut sehingga menjadi 010011010110000101101110. Karena Base64 merupakan basis 64, maka angka tersebut harus dikonversi menjadi sistem bilangan basis 64. Caranya adalah dengan membagi 24 bit tersebut dengan 6. Maka akan menghasilkan 4 bagian dengan masing-masing 6 bit, yaitu 010011-010110-000101-101110.

Sebagai tambahan, alasan mengapa dibagi dengan 6 karena 26 = 64. Hal yang sama juga berlaku ketika kita mengubah basis 2 (biner) ke basis 32, yaitu dengan membaginya dengan 5 karena 25 = 32. Begitu juga ke basis lainnya.
 

Langkah Keempat

Lalu ubah tiap bagiannya ke desimal (lihat baris indeks):

4
 

Langkah Kelima

Kemudian, indeks yang didapatkan tersebut dikonversi ke nilai yang ada di Base64 (Lihat tabel Encoding Base64 di atas).

5

Voila! Kita berhasil meng-encode Man menjadi TWFu.


Tambahan

Kebetulan ‘Man’ adalah kata dengan panjang 3 karakter, alias 24 bit (tiap karakter berbobot 8 bit), yang mana 24 habis dibagi 6. Bagaimana jika kata “M” yang memiliki panjang 8 bit, yang jika dibagi 6 akan menyisakan 2? Maka akan ada yang disebut dengan padding character, yaitu ‘=’, padding ini akan menambah panjang kata hingga mencapai kelipatan 3 terdekat. Contohnya pada kata ‘M’ yang terdiri dari satu karakter, untuk mencapai kelipatan 3 terdekat maka akan ada penambahan 2 ‘=’ sehingga panjangnya menjadi 3.

Maka teks M akan menghasilkan TQ==.


Tinggalkan Balasan