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".
- 155 -> 10011011
- 162 -> 10100010
- 233 -> 11101001
- 100110 -> 38
- 111010 -> 58
- 001011 -> 11
- 101001 -> 41
- 38 -> m
- 58 -> 6
- 11 -> L
- 41 -> p
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 | / |