Чӣ тавр Base64 Encoding Works?

Агар Интернет шоҳроҳи иттилоотӣ бошад, пас роҳи почтаи электронӣ аст. Танҳо мошинҳои хеле хурд метавонанд гузаранд.

Системаи нақлиёти почтаи электронӣ танҳо барои ASCII матни оддӣ сохта шудааст. Кӯшиш кунед, ки матнро бо забонҳои дигар ё файлҳои фишурда фиристед.

Чӣ тавр мошини бузург ба воситаи ҷавоҳирот?

Пас чӣ тавр шумо мошини боркашро ба воситаи хурди хурд фиристед? Шумо бояд онро ба як қисм ҷудо кунед, интиқолро тавассути ҷавоҳирот кашед ва мошинро аз қисмҳои дигар барқарор кунед.

Ҳамин тавр, шумо ҳангоми почтаи электронӣ тавассути почтаи электронӣ фиристед . Дар раванди номбурда, ҳамчун рамзгузорӣ маълумотҳои дуӣ ба ASCII матн, ки мумкин аст бе почтаи электронӣ интиқол дода шаванд. Дар охири қабулкунанда, маълумот дода мешавад ва файли аслӣ барқарор карда мешавад.

Яке аз усулҳои рамзгузории маълумотҳои худсарона ҳамчун ASCII матни оддӣ Base64 мебошад. Ин яке аз усулҳои коркарди стандарти MIME мебошад , ки ба фиристодани маълумотҳо, ғайр аз матни одд .

Base64 ба наҷот

Рамзгузории Base64 се байт, ҳар як иборат аз ҳашт адад мегирад ва онҳо ҳамчун чор аломати чопӣ дар ASCII стандартӣ нишон медиҳанд. Ин дар он аст,

Қадами аввал ин се блогро ба чор рақами шаш адад табдил медиҳад. Ҳар як аломат дар ASCII стандартӣ аз ҳафт. Base64 танҳо 6 ададро истифода мебарад (мувофиқ ба 2 ^ 6 = 64 аломатҳо) барои таъмин намудани маълумоти рамзкардашуда ва чопшудаи инсонӣ. Ҳеҷ яке аз аломатҳои махсусе, ки дар ASCII мавҷуданд, истифода мешаванд.

64 рамзи (индекс номии Base64) 10 рақам, 26 аломатҳои хурд, 26 аломатҳои калон, инчунин '+' ва '/' иборат аст.

Агар масалан, се блог 155, 162 ва 233 дошта бошад, суръати муносиби (ва бадбахтии) 100110111010001011101001 мебошад, ки дар навбати худ ба арзишҳои 6-битҳо 38, 58, 11 ва 41 мувофиқ аст.

Ин рақамҳо ба рамзҳои ASCII дар қадами дуюм бо истифода аз Table64 encoding табдил дода мешаванд. Арзиши 6-битии намунаи мо ба ASCII пайдарпаии "m6Lp" -ро тарҷума мекунад.

Ин раванди дуҳуҷравӣ ба пайдоиши тамоми блогҳо, ки рамзгузорӣ шудаанд, истифода мешаванд. Барои таъмин намудани маълумоти рамзкардашуда ба таври дуруст чоп карда мешавад ва аз ҳар як лимити дарозии хаттии сервер зиёдтар аст, аломатҳои нав ба ҷойгиршавии дарозии сатри поёнтар аз 76 аломат гузошта мешаванд. Хусусиятҳои навин ба монанди ҳамаи дигар маълумотҳо encoded.

Ҳал кардани Endgame

Дар охири раванди рамзгузорӣ, мо метавонем ба мушкилот дучор шавем. Агар андозаи маълумоти ибтидоӣ дар ҳаҷми яктарафа бошад, ҳама чиз хуб кор мекунад. Агар ин набошад, мо метавонем бо як ё ду блоги бригада хотима ёбем. Лекин, барои рамзгузории дуруст, мо бояд се банди сеюмро талаб кунем.

Ҳалли ин аст, ки бо яроқи кофӣ ба андозаи 0 'барои эҷоди гурӯҳи 3-ҳиссаро ба итмом расонад. Ду ин гуна арзишҳо замима мегарданд, агар мо як замимаи иловагии иловагӣ дошта бошем, яке аз ду дегхонаи иловагӣ илова карда шудааст.

Албатта, ин параметрҳои сунъии '0' наметавонанд бо матни рамзгузорӣ дар зер код карда шаванд. Онҳо бояд дорои аломати 65-ум бошанд.

The Base64 padding аломати '=' аст. Табиист, ки он танҳо дар охири маълумотҳои рамзгузорист.

Base64 Ҷадвали ҷолиб

Арзиш Char Арзиш Char Арзиш Char Арзиш Char
0 А) 16 С. 32) g 48) w
1 Б. 17 Ра 33 h 49 Рауф Баротов
2 $ C) Аз тарафи 18 С. 34) i 50 y
3 Д. 19 Т. 35) Ҷ 51) Зиндагинома
4 E 20 U 36) к 52) 0
5 Ф. 21 В. 37) Бештар 53) 1
6 Г. 22 В. 38) м 54) 2
7 Ҳ 23 X 39) Н. 55) 3
8) Ман 24 Ягон 40) o 56) 4
9 Ҷ 25) З 41) П. 57) 5
10 К. 26 a 42) Савол: 58) 6
11 Л. 27 b 43 Р 59) 7
12 М 28 $ C) Ҳуқуқи инсон; 44) с 60 8)
13 Н. 29 d 45 т 61 9
14 О 30 e 46) u 62) +
15 П. 31 f 47) v 63) /