How Base64 Encoding Works?

Ger înternetê agahdariya rêwîtiyê ye, paşê ji bo rêberek rahînek tengahî ye. Ten carotên biçûk tenê dikarin derbas bibin.

Sîstema veguhestina e-nameyê tenê ji bo ASCII nivîskî hate çêkirin. Di xebitandina pelên din de zimanên din û pelên berevajî yên şîfre bişînin mîna rêwîtiyek bi rêya ravîn e.

Çawa Big Truck bi rêya Ravîn digerin?

Hingê hûn çawa bi riya hinekî piçûk bigire? Divê hûn jê re bikişînin li ser endamekê, li ser rûkê veguherînin, û rêwîtiyê ji sifên din ve li ser duyemîn avêtin.

Di heman demê de dema ku hûn bi rêya pêleka pelê veşartî bişîne . Di pêvajoya ku pêvajoya naskirî ya daneyên biyanî tête tête danîn asayî ya ASCII veguherîne, ku bêyî ku pirsgirêk bi e-nameyan re veguhestin. Li dawiya bidestxistinê, daneyên danûstandin û pelê rastîn ava kirin.

Yek rêbazek daneyên danûstendiyên arîfal ên wekî ASCII nivîskî Base64 ye. Ew yek ji teknîkî ye ku ji aliyê MIME-standard ve tête daneyên din ên ji hêla plain plain .

Base64 to Rescue

Base64 encoding sê sêtesan dike, her yek ji 8 bits hene, û ew wek çar printable characters in the ASCII standard represents. Ew di çarçoveya du gav.

Yekem yekem e ku sê alîte bi çar hejmarên şeş bûrs biguherînin. Her kes di nav standard ASCII de heft bend hene. Base64 tenê 6 bîtan (peyda kirin 2 ^ 6 = 64) ye ku ji bo agahdariya encoded data belge û mirovî xwendevan e. Naverokên taybet ên di ASCII de têne bikaranîn.

64 faktor (ji vî awayî Base64) 10 nîjer, 26 lîstikên jêrîn, 26-ê 'û' / 'ne.

Heke nimûne ji bo nimûne, sê bytes 155, 162 û 233, vîdyek têkildarî (û tirsîner) bitê 100110111010001011101001, ku bi riya nirxên 38-ê, 58, 11 û 41-ê 6-bit e.

Ev hejmar di çarçoveya duyem de bi karûbarên Base64 encoding bi kar anîna ASCII veguherîn têne guhertin. Wek nirxên me 6-bit wergerandin ku ji bo ASCII veguherîna "m6Lp".

Ev pêvajoya du-pêngavê li ser teva bîteyên ku encodî têne bikaranîn. Ji bo ku piştrastkirina daneyên encodkirî bi awayekî vekirî têne çapkirin û ji sînorê sînorê nû ya mêvandar ne derbas ne, nexşeya nûline tête binivîsin ku ji 76 jûrên jêrîn binivîsin. Lîsteyên nû yên wekî daneyên din ên din têne encoded kirin.

Solving the Endgame

Di dawiyê de pêvajoya encamkirina encodê, em dikarin pirsgirêkek bikişînin. Heke kîteya bingehîn ên di binîteyên sê-sê de ye, hema her tiştek baş e. Heke ne, em dibe ku bi yek an du-8-bit bytes vekin. Ji bo encamkirina şerta baş, em bi her sê alîtan re hewce ne.

Pirsgirêk ew e ku ji hêla 3-byte biafirîne ji hêla berbi bayeyên bi '0' veguherîne. Du hejmarên hûrgelan jî hebin ku heke me ji hêla agahdariyeke din ve heye, yek ji bo du bêhtir bişkojk tête kirin.

Bê guman, ev travîla sêwrê '0's nikare bikar tînin binivîse ser sifreya kodê. Divê ew ji hêla xemgîniya 65-ê temsîl bikin.

Lîsteya bingehîn ya Bingeha Base64 '=' e. Bi awayekî zehf, ew tenê di dawiya daneyên encodkirî de dikare dibe.

Base64 Encoding Table

Giranî Char Giranî Char Giranî Char Giranî Char
0 YEK 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 ez 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 ez 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 yek 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 tu 62 +
15 P 31 f 47 v 63 /