Momwe Ntchito Zakalembera za Base64

Ngati intaneti ndi msewu waukulu, ndiye njira ya imelo ndiyo mphepo yochepa. Magalimoto ang'onoang'ono okha angadutse.

Njira yoyendetsa maimelo imapangidwira malemba a ASCII okha. Kuyesera kutumiza malemba m'zinenero zinanso kapena mafayilo osokoneza bongo kuli ngati kupeza galimoto pamtunda.

Kodi Ngolo Yaikulu Imayenda Bwanji M'chigwacho?

Ndiye mungatumize bwanji galimoto yaikulu mumtsinje waung'ono? Muyenera kuzidula pang'onopang'ono, kutumiza zidutswa pamtunda, ndi kumanganso galimotoyo kuchokera kumapeto.

Zomwezo zimachitika pamene mutumiza chojambulidwa ndi fayilo kudzera pa imelo . Mu njira yotchedwa encoding data ya binary imasinthidwa kukhala malemba ASCII, omwe angatumizedwe imelo popanda mavuto. Pa mapeto a wolandira, deta imasulidwa ndipo fayilo yapachiyambi imangidwanso.

Njira imodzi yokopera deta yosawerengeka monga malemba olembedwa ASCII ndi Base64. Ndi imodzi mwa njira zomwe zimagwiritsidwa ntchito ndi muyezo wa MIME kutumiza deta zina osati zolemba .

Base64 ku Kupulumutsidwa

Kutsata kwa Base64 kumatenga katatu katatu, kamodzi kalikonse kamene kali ndi ma biti asanu ndi atatu, ndipo amawaimira ngati malembo anayi osindikizidwa muyezo wa ASCII. Icho chimachita izo mwazinthu ziwiri.

Gawo loyamba ndikutembenuza maofesi atatu mpaka manambala anai asanu ndi limodzi. Makhalidwe aliwonse muyezo wa ASCII ali ndi zilembo zisanu ndi ziwiri. Base64 amangogwiritsa ntchito mabedi 6 (ofanana ndi 2 ^ 6 = zilembo 64) kuonetsetsa kuti deta yosindikizidwa ndi yosindikizidwa komanso yowerengedwa ndi anthu. Palibe amodzi omwe amapezeka mu ASCII.

Zithunzi 64 (motero dzina lakuti Base64) ndi mawerengero khumi, 26 zilembo zing'onozing'ono, 26 zilembo zazikulu komanso '+' ndi '/'.

Ngati mwachitsanzo, maofesi atatuwa ndi 155, 162 ndi 233, mtsinje wofanana (ndi wochititsa mantha) ndi 100110111010001011101001, womwe umagwirizana ndi ma-6-bit makhalidwe 38, 58, 11 ndi 41.

Nambala izi zasinthidwa kukhala zilembo za ASCII mu sitepe yachiwiri pogwiritsa ntchito tebulo la encoding la Base64. Makhalidwe a 6-bit a chitsanzo chathu amatanthauzira ku dongosolo la ASCII "m6Lp".

Ndondomeko iwiriyi ikugwiritsidwa ntchito pazitsulo zonse zolembedwera. Kuonetsetsa kuti deta yosinthidwa ikhoza kusindikizidwa bwino ndipo sichidutsa malire amtundu wa mzere wa makalata, zilembo zatsopano zimayikidwa kuti zisunge kutalika kwa mzere pansi pa ziwerengero 76. Makhalidwe atsopanowa ali ndi encoded monga deta zonse.

Kuthetsa Mapeto

Pamapeto pa ndondomeko ya encoding, tikhoza kukhala ndi vuto. Ngati kukula kwa deta yapachiyambi mu bytes ndi mowirikiza wa atatu, chirichonse chimayenda bwino. Ngati sizingatheke, tingathe kumaliza ndi imodzi kapena ziwiri. Kuti tiwone bwino, tikufunikira ndendende katatu, komabe.

Njira yothetsera vutoli ndi kuwonjezera ma totes okwanira ndi mtengo wa '0' kupanga gulu la 3-byte. Zotsatira ziwirizi zimaphatikizidwa ngati tili ndi deta imodzi yowonjezereka, imodzi imatumizidwa kwa maola awiri owonjezera.

Zoonadi, izi zopangidwira za '0' sizingatheke kutchulidwa pogwiritsa ntchito tebulo lakumapeto. Ayenera kuimiridwa ndi khalidwe la 65.

Chikhalidwe cha Base64 padding ndicho '='. Mwachidziwikire, izo zingangowonekera kokha kumapeto kwa deta yolumikizidwa.

Mndandanda wa Masalimo a Base64

Phindu Char Phindu Char Phindu Char Phindu 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 /