Cara Kerja Konstruksi Base64

Yen internet minangka dalan informasi, banjur dalan kanggo email minangka jurang sempit. Mung gerobak cilik sing bisa lumaku.

Sistem transportasi email dirancang kanggo teks ASCII kosong. Nyoba ngirim teks ing basa liyané utawa file kasunyatan kaya njupuk truk liwat jurang.

Carane Big Truck go Through the Ravine?

Banjur carane sampeyan ngirim truk gedhe liwat jurang cilik? Sampeyan kudu nyelehake ing ujung siji, ngeterake potongan liwat jurang, lan mbangun maneh truk kasebut saka ujung-ujung liyane.

Padha kaya nalika ngirim lampiran file liwat email . Ing proses dikenal minangka encoding, data biner diowahi dadi teks ASCII, sing bisa diangkut ing email tanpa masalah. Ing pungkasan panampa, data wis di-decode lan file asli dibangun maneh.

Salah sawijining metode encoding data sewenang-wenang minangka teks ASCII kosong yaiku Base64. Iku salah sawijining teknik sing digunakake dening standar MIME kanggo ngirim data liyane saka teks kosong .

Base64 kanggo Rescue

Konfigurasi Base64 entuk telung bita, sing sabenere dumadi saka wolung bit, lan nggambarake minangka karakter sing bisa dicithak ing ASCII standar. Iku sing tegese rong langkah.

Langkah kapisan kanggo ngowahi tiga byte menyang papat nomer enem bit. Saben karakter ing standar ASCII kasusun saka pitung bit. Base64 mung nggunakake 6 bit (cocog karo 2 ^ 6 = 64 karakter) kanggo njamin data sing dienkode bisa dicithak lan bisa diwaca kanthi manusane. Ora ana karakter khusus sing kasedhiya ing ASCII.

Ing 64 karakter (mula jeneng Base64) ana 10 digit, 26 aksara cilik, 26 aksara gedhe, lan '+' lan '/'.

Yen ana telung bita ana 155, 162 lan 233, stream bit sing cocog (lan frightening) yaiku 100110111010001011101001, sing cocog karo nilai 6-bit 38, 58, 11, lan 41.

Angka iki diowahi dadi ASCII karakter ing langkah kapindho kanthi nggunakake tabel encoding Base64. Nilai-nilai 6-bit saka conto kita diterjemahake menyang urutan ASCII "m6Lp".

Proses loro-langkah iki diterapake kanggo kabeh urutan byte sing dienkode. Kanggo njamin data sing dienkode bisa dicithak kanthi bener lan ora ngluwihi wates dawa server, aksara anyar dilebokake kanggo njaga garis panjang sangisoré 76 karakter. Karakter anyar dicithak kaya kabeh data liyane.

Ngatasi Endgame

Ing pungkasan proses panyandian, kita bisa dadi masalah. Yen ukuran data asli ing bita minangka pirang-pirang saka telu, kabeh dianggo alus. Yen ora, bisa uga ana siji utawa loro bait 8-bit. Kanggo encoding sing bener, kita butuh persis tiga byte.

Solusi kanggo mbandhingake cukup bait kanthi nilai '0' kanggo nggawe grup 3-bait. Loro-lorone nilai kasebut ditambahake yen kita duwe siji byte data, siji ditambahake rong byte ekstra.

Mesthi, iki ngasilake buatan '0' ora bisa dienkode nggunakake tabel panyandheg ing ngisor iki. Padha kudu diwakili dening karakter 65th.

Karakter padding Base64 yaiku '='. Alami, mung bisa katon ing pungkasan data sing dienkode.

Tabs Encoding 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 n 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 sampeyan 62 +
15 P 31 f 47 v 63 /