Cara Kerja Pengkodean Base64

Daftar Isi:

Cara Kerja Pengkodean Base64
Cara Kerja Pengkodean Base64
Anonim

Pengkodean Base64 adalah proses mengubah data biner ke format string ASCII dengan mengubah data biner tersebut menjadi representasi karakter 6-bit. Metode pengkodean Base64 digunakan ketika data biner, seperti gambar atau video, ditransmisikan melalui sistem yang dirancang untuk mengirimkan data dalam format teks biasa (ASCII).

Mengapa Encoding Base64 Digunakan?

Perlunya pengkodean Base64 berasal dari masalah yang terjadi ketika media ditransmisikan dalam format biner mentah ke sistem berbasis teks.

Karena sistem berbasis teks (seperti email) menafsirkan data biner sebagai berbagai karakter, termasuk karakter perintah khusus, banyak data biner yang ditransmisikan ke media transfer disalahartikan oleh sistem tersebut dan hilang atau rusak dalam proses transmisi.

Image
Image

Salah satu metode penyandian data biner semacam ini dengan cara menghindari masalah transmisi seperti itu adalah dengan mengirimkannya sebagai teks ASCII biasa dalam format yang disandikan Base64. Ini adalah salah satu teknik yang digunakan oleh standar MIME untuk mengirim data selain teks biasa.

Banyak bahasa pemrograman, seperti PHP dan Javascript, menyertakan fungsi encoding dan decoding Base64 untuk menafsirkan data yang dikirimkan menggunakan encoding Base64.

Logika Pengkodean Base64

Pengkodean Base64 memecah data biner menjadi segmen 6-bit dari 3 byte penuh dan mewakilinya sebagai karakter yang dapat dicetak dalam standar ASCII. Itu pada dasarnya dilakukan dalam dua langkah.

Langkah pertama adalah memecah string biner menjadi blok 6-bit. Base64 hanya menggunakan 6 bit (sesuai dengan 2^6=64 karakter) untuk memastikan data yang disandikan dapat dicetak dan dibaca secara manusiawi. Tidak ada karakter khusus yang tersedia di ASCII yang digunakan.

The 64 karakter (maka nama Base64) adalah 10 digit, 26 karakter huruf kecil, 26 karakter huruf besar serta tanda Plus (+) dan Garis Miring (/). Ada juga karakter ke-65 yang dikenal sebagai pad, yang merupakan tanda sama dengan (=). Karakter ini digunakan ketika segmen terakhir dari data biner tidak berisi 6 bit penuh.

Contoh Pengkodean Base64

Misalnya, ambil tiga angka ASCII 155, 162, dan 233. Ketiga angka ini membentuk aliran biner 100110111010001011101001. File biner, seperti gambar, berisi aliran biner yang berjalan selama puluhan atau ratusan ribu nol dan lainnya.

A Base64 encoder dimulai dengan membagi aliran biner ke dalam pengelompokan enam karakter: 100110 111010 001011 101001. Masing-masing pengelompokan ini diterjemahkan ke dalam angka 38, 58, 11, dan 41.

Sebuah aliran biner enam karakter mengkonversi antara karakter biner (atau basis-2) ke desimal (basis-10) dengan mengkuadratkan setiap nilai yang diwakili oleh 1 dalam urutan biner dengan kuadrat posisinya. Mulai dari kanan dan bergerak ke kiri, dan mulai dari nol, nilai dalam aliran biner mewakili 2^0, lalu 2^1, lalu 2^2, lalu 2^3, lalu 2^4, lalu 2^5.

Inilah cara lain untuk melihatnya. Mulai dari kiri, setiap posisi bernilai 1, 2, 4, 8, 16, dan 32. Jika angka biner memiliki 1 di slot, Anda menambahkan nilai itu; jika memiliki 0 di slot, Anda tidak. String biner 100110 dikonversi ke angka desimal 38: 02^01 + 12^1 + 12^2 + 02^3 + 02^4 + 12^5=0+2 +4+0+0+32.

Base64 encoding mengambil string biner ini dan memecahnya menjadi nilai 6-bit 38, 58, 11 dan 41.

Akhirnya, angka-angka ini dikonversi ke karakter ASCII menggunakan tabel pengkodean Base64. Nilai 6-bit dari contoh ini diterjemahkan ke urutan ASCII m6Lp.

Menggunakan tabel konversi Base64:

  • 38 adalah m
  • 58 adalah 6
  • 11 adalah L
  • 41 adalah p

Proses dua langkah ini diterapkan ke seluruh string biner yang dikodekan.

Untuk memastikan data yang dikodekan dapat dicetak dengan benar dan tidak melebihi batas panjang baris server email mana pun, karakter baris baru dimasukkan untuk menjaga panjang baris di bawah 76 karakter. Karakter baris baru dikodekan seperti semua data lainnya.

Seluruh tujuan pengkodean Base64, mulai dari menambahkan padding untuk mempertahankan segmen biner 3 byte hingga mengonversi biner ke teks menggunakan tabel Base64, adalah untuk menjaga integritas informasi biner yang dikirimkan.

Tabel Pengkodean Base64

Tabel berikut menerjemahkan semua 64 karakter yang digunakan dalam pengkodean Base64.

Tabel Pengkodean Base64
Nilai Char Nilai Char Nilai Char Nilai Char
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 55 3
8 Aku 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

Memecahkan Endgame

Pada akhir proses encoding, mungkin ada masalah. Jika ukuran data asli dalam byte adalah kelipatan tiga, semuanya berfungsi dengan baik. Jika tidak, mungkin ada byte kosong. Untuk pengkodean yang tepat, dibutuhkan tepat 3 byte data biner.

Solusinya adalah menambahkan cukup byte dengan nilai 0 untuk membuat grup 3 byte. Dua nilai tersebut ditambahkan jika data membutuhkan satu byte data tambahan, satu ditambahkan untuk dua byte tambahan.

Tentu saja, trailing '0 buatan ini tidak dapat dikodekan menggunakan tabel pengkodean di bawah ini. Mereka harus diwakili oleh karakter ke-65. Karakter padding Base64 adalah tanda Sama dengan (=) dan ditempatkan di akhir data yang dikodekan.

Direkomendasikan: