Kif taħdem il-Kodifikazzjoni Base64

Jekk l-internet huwa l-awtostrada tal-informazzjoni, allura t-triq għall-email hija ravine dejqa. Huma biss karretti żgħar ħafna li jistgħu jgħaddu.

Is-sistema tat-trasport ta 'l-email hija mfassla biss għal test ASCII sempliċi. Jipprova jibgħat it-test f'lingwi oħra jew fajls arbitrarji huwa simili li jkollna trakk permezz tar-ravina.

Kif tgħaddi t-Big Truck mill-Barranija?

Imbagħad kif tibgħat trakk kbir minn ravine żgħir? Għandek teħodha f'biċċiet fuq in-naħa waħda, ittrasporta l-biċċiet minn ġo ravina, u terġa 'tibni t-trakk mill-biċċiet fuq in-naħa l-oħra.

L-istess jiġri meta tibgħat file attachment permezz ta 'email . Fi proċess magħruf bħala kodifikazzjoni d-data binarja tinbidel għal test ASCII, li jista 'jiġi ttrasportat bl-email mingħajr problemi. Sat-tmiem tar-riċevitur, id-data tiġi dekodifikata u l-fajl oriġinali huwa mibni mill-ġdid.

Metodu wieħed ta 'kodifikazzjoni ta' data arbitrarja bħala test ASCII sempliċi huwa Base64. Hija waħda mit-tekniki użati mill- istandard MIME biex tibgħat data barra minn test sempliċi .

Base64 għas-Salvataġġ

Il-kodifikazzjoni Base64 tieħu tliet bytes, kull waħda minnhom tikkonsisti fi tmien bits, u tirrappreżentahom bħala erba 'karattri printable fl-istandard ASCII. Dan jagħmel essenzjalment żewġ passi.

L-ewwel pass huwa li jikkonverti tliet bytes għal erba 'numri ta' sitt bits. Kull karattru fl-istandard ASCII jikkonsisti f'seba 'bits. Base64 juża biss 6 bits (li jikkorrispondu għal 2 ^ 6 = 64 karattru) biex jiżguraw li d-data kkodifikata tkun tista 'tinqara u tista' tinqara mill-bniedem. L-ebda wieħed mill-karattri speċjali disponibbli fl-ASCII ma jintuża.

Il-64 karattru (minn hawn l-isem Base64) huma 10 ċifri, 26 karattri żgħar, 26 karattru ikbar u '+' u '/'.

Jekk per eżempju, it-tliet bytes huma 155, 162 u 233, in-nixxiegħa tal-bit korrispondenti (u ta 'biża) hija 100110111010001011101001, li min-naħa tagħha tikkorrispondi mal-valuri ta' 6-bit 38, 58, 11 u 41.

Dawn in-numri huma kkonvertiti għal karattri ASCII fit-tieni pass bl-użu tat-tabella ta 'kodifikazzjoni Base64. Il-valuri ta '6-bit ta' l-eżempju tagħna jittraduċu għas-sekwenza ASCII "m6Lp".

Dan il-proċess f'żewġ stadji huwa applikat għas-sekwenza kollha ta 'bytes li huma kodifikati. Biex tkun żgurata li d-dejta kkodifikata tista 'tiġi stampata kif suppost u ma teċċedix il-limitu tat-tul tal-linja tal-posta elettronika, karattri ġodda jiddaħħlu biex iżommu tulijiet ta' linji taħt 76 karattru. Il-karattri ġodda huma kkodifikati bħad-data l-oħra kollha.

Is-soluzzjoni tal-Loggame

Fl-aħħar tal-proċess ta 'kodifikazzjoni, nistgħu nidħlu f'xi problema. Jekk id-daqs tad-dejta oriġinali f'bytes huwa multiplu ta 'tlieta, kollox jaħdem tajjeb. Jekk ma jkunx hekk, nistgħu nispiċċaw b'xi bytes ta '8-bit jew tnejn. Għal kodifikazzjoni xierqa, neħtieġu eżattament tliet bytes, madankollu.

Is-soluzzjoni hija li jiġu annessi bytes biżżejjed b'valur ta '' 0 'biex jinħoloq grupp ta' 3 bytes. Żewġ valuri bħal dawn huma annessi jekk għandna byte addizzjonali ta 'data, wieħed huwa anness għal żewġ bytes żejda.

Naturalment, dawn it-trailing artifiċjali "0's ma jistgħux jiġu kkodifikati bl-użu tat-tabella tal-kodifikazzjoni ta 'hawn taħt. Għandhom ikunu rappreżentati b'65 karattru.

Il-karattru tal-padding Base64 huwa '='. Naturalment, jista 'jidher biss fi tmiem id-data kkodifikata.

Tabella Encoding Base64

Valur Char Valur Char Valur Char Valur 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 I 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 /