Kumaha Base64 Encoding Works

Mun internét geus jalan raya informasi, teras jalur keur email nyaéta lurah sempit. Ngan carts pisan leutik bisa lulus.

Sistem angkutan tina email dirancang pikeun ASCII polos téks wungkul. Nyobian ngirim tulisan dina basa séjén atawa payil sawenang téh kawas sia treuk a ngaliwatan jurang nu.

Kumaha Dupi éta Treuk Big buka Ngaliwatan lurah?

Lajeng kumaha anjeun ngirim treuk badag ngaliwatan jurang leutik? Anjeun kudu mawa ka buah dina hiji tungtung, ngangkut potongan ngaliwatan jurang, sarta nyieun treuk ti potongan dina tungtung séjén.

Sami kajadian mun anjeun ngirim attachment file via email . Dina prosés nu katelah panyandian data binér anu robah nepi téks ASCII, nu bisa diangkut dina email tanpa masalah. Dina tungtung panarima, data anu dikirim jeung file aslina ieu diwangun deui.

Hiji metoda panyandian data sawenang salaku téks ASCII polos nyaeta Base64. Ieu salah sahiji téhnik padamelan ku standar mimik pikeun ngirim data lianna ti téks polos .

Base64 mun Nyalametkeun nu

Base64 encoding nyokot tilu bait, unggal pada diwangun ku dalapan bit, sarta ngagambarkeun aranjeunna salaku opat karakter diprint dina standar ASCII. Hancana nu di dasarna dua hambalan.

Hambalan munggaran nyaéta pikeun ngarobah tilu bait ka opat angka genep bit. Unggal karakter dina standar ASCII diwangun ku tujuh bit. Base64 ngan ngagunakeun 6 bit (pakait jeung 2 ^ 6 = 64 karakter) pikeun mastikeun data dikodekeun mangrupa diprint na humanly bisa dibaca. Euweuh sahiji karakter husus disadiakeun dina ASCII anu dipaké.

The 64 karakter (ku kituna nami Base64) anu 10 digit, 26 karakter aksara leutik, 26 karakter uppercase ogé '+' sarta '/'.

Lamun contona, éta tilu bait anu 155, 162 sarta 233, anu pakait (jeung frightening) aliran bit anu 100110111010001011101001, anu dina gilirannana pakait jeung 6-bit peunteun 38, 58, 11 jeung 41.

angka ieu nu dirobah jadi karakter ASCII dina hambalan kadua migunakeun tabel encoding Base64. Nilai 6-bit sahiji conto urang narjamahkeun kana runtuyan ASCII "m6Lp".

prosés dua-hambalan ieu dilarapkeun ka sakabeh réntétan bait nu disandikeun. Pikeun mastikeun data disandikeun bisa dicitak leres tur henteu ngaleuwihan wates panjang garis sagala mail server urang, karakter newline téh diselapkeun tetep garis tebih dihandap 76 karakter. Hurup newline disandikeun kawas sakabeh data lianna.

Ngarengsekeun Endgame nu

Dina ahir prosés encoding, urang bisa ngajalankeun kana masalah. Lamun ukuran tina data aslina dina bait mangrupakeun kakalian antara tilu, sagalana jalan rupa. Lamun henteu, urang bisa mungkas nepi ka salah sahiji atawa dua bait 8-bit. Pikeun encoding ditangtoskeun, urang kudu persis tilu bait, kumaha.

solusi nya éta append cukup bait sareng nilai '0' pikeun nyieun grup 3-bait. Dua nilai sapertos nu appended lamun urang boga salah bait tambahan data, salah ieu appended pikeun dua bait tambahan.

Tangtu, jieunan ieu labuh '0 urang teu bisa disandikeun maké tabel encoding handap. Éta kudu digambarkeun ku karakter 65th.

The Base64 karakter padding anu '='. Alami, eta ngan kantos muncul di tungtung data disandikeun.

Base64 Encoding Table

ajen Char ajen Char ajen Char ajen Char
0 A 16 Q 32 g 48 w
1 B 17 Urang Sunda 33 h 49 x
2 C 18 S 34 abdi 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 abdi 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 /