Si funksionon kodimi i Base64

Përmbajtje:

Si funksionon kodimi i Base64
Si funksionon kodimi i Base64
Anonim

Enkodimi Base64 është një proces i konvertimit të të dhënave binare në një format vargu ASCII duke i konvertuar ato të dhëna binare në një paraqitje të karaktereve 6-bit. Metoda Base64 e kodimit përdoret kur të dhënat binare, të tilla si imazhet ose videot, transmetohen përmes sistemeve që janë krijuar për të transmetuar të dhëna në një format teksti të thjeshtë (ASCII).

Pse përdoret kodimi Base64?

Nevoja për kodimin Base64 vjen nga problemet që ndodhin kur media transmetohet në format binar të papërpunuar në sistemet e bazuara në tekst.

Meqenëse sistemet e bazuara në tekst (si e-mail) interpretojnë të dhënat binare si një gamë të gjerë karakteresh, duke përfshirë karaktere të veçanta komandash, shumica e të dhënave binare që transmetohen në media transferohen keqinterpretohen nga ato sisteme dhe humbasin ose korruptohen në procesi i transmetimit.

Image
Image

Një metodë e kodimit të këtij lloji të të dhënave binare në një mënyrë që shmang probleme të tilla transmetimi është dërgimi i tyre si tekst i thjeshtë ASCII në formatin e koduar Base64. Kjo është një nga teknikat e përdorura nga standardi MIME për të dërguar të dhëna të ndryshme nga teksti i thjeshtë.

Shumë gjuhë programimi, si PHP dhe Javascript, përfshijnë funksionet e kodimit dhe dekodimit të Base64 në mënyrë që të interpretojnë të dhënat e transmetuara duke përdorur kodimin Base64.

Logjika e kodimit Base64

Kodimi Base64 i thyen të dhënat binare në segmente 6-bit me 3 bajt të plota dhe i përfaqëson ato si karaktere të printueshme në standardin ASCII. E bën këtë në thelb në dy hapa.

Hapi i parë është ndarja e vargut binar në blloqe 6-bitësh. Base64 përdor vetëm 6 bit (që korrespondojnë me 2^6=64 karaktere) për të siguruar që të dhënat e koduara të jenë të printueshme dhe të lexueshme nga njeriu. Asnjë nga karakteret speciale të disponueshme në ASCII nuk përdoret.

64 karakteret (prandaj emri Base64) janë 10 shifra, 26 karaktere të vogla, 26 karaktere të mëdha si dhe shenja Plus (+) dhe Slash përpara (/). Ekziston gjithashtu një karakter i 65-të i njohur si jastëk, që është shenja e barabartë (=). Ky karakter përdoret kur segmenti i fundit i të dhënave binare nuk përmban plot 6 bit.

Shembull kodimi Base64

Për shembull, merrni tre numra ASCII 155, 162 dhe 233. Këta tre numra përbëjnë një rrjedhë binar prej 100110111010001011101001. Një skedar binar, si një imazh, përmban një rrjedhë binar që funksionon për dhjetëra ose qindra mijëra dhe ato.

Një kodues Base64 fillon duke e copëtuar rrjedhën binar në grupime me gjashtë karaktere: 100110 111010 001011 101001. Secili prej këtyre grupimeve përkthehet në numrat 38, 58, 11dhe 41…

Një rrjedhë binar me gjashtë karaktere konverton karakteret binar (ose bazë-2) në dhjetore (bazë-10) duke kuadruar secilën vlerë të përfaqësuar nga një 1 në sekuencën binare me katrorin e saj pozicional. Duke filluar nga e djathta dhe duke lëvizur majtas, dhe duke filluar me zero, vlerat në rrjedhën binar përfaqësojnë 2^0, pastaj 2^1, pastaj 2^2, pastaj 2^3, pastaj 2^4, pastaj 2^5.

Ja një mënyrë tjetër për ta parë atë. Duke filluar nga e majta, çdo pozicion vlen 1, 2, 4, 8, 16 dhe 32. Nëse numri binar ka një 1 në slot, ju shtoni atë vlerë; nëse ka një 0 në slot, ju nuk e keni. Vargu binar 100110 konvertohet në numrin dhjetor 38: 02^01 + 12^1 + 12^2 + 02^3 + 02^4 + 12^5=0+2 +4+0+0+32.

Enkodimi Base64 merr këtë varg binar dhe e zbërthen në vlerat 6-bitësh 38, 58, 11 dhe 41.

Më në fund, këta numra konvertohen në karaktere ASCII duke përdorur tabelën e kodimit Base64. Vlerat 6-bit të këtij shembulli përkthehen në sekuencën ASCII m6Lp.

Përdorimi i tabelës së konvertimit Base64:

  • 38 është m
  • 58 është 6
  • 11 është L
  • 41 është p

Ky proces me dy hapa zbatohet në të gjithë vargun binar që është i koduar.

Për t'u siguruar që të dhënat e koduara mund të printohen siç duhet dhe nuk e kalojnë kufirin e gjatësisë së linjës së ndonjë serveri të postës, karakteret e linjës së re futen për të mbajtur gjatësinë e rreshtit nën 76 karaktere. Karakteret e linjës së re janë të koduara si të gjitha të dhënat e tjera.

I gjithë qëllimi i kodimit Base64, nga shtimi i mbushjes për të ruajtur segmentet binare 3-bajtë deri te konvertimi binar në tekst duke përdorur tabelën Base64, është ruajtja e integritetit të informacionit binar të transmetuar.

Tabela e kodimit Base64

Tabela e mëposhtme përkthen të gjitha 64 karakteret e përdorura në kodimin Base64.

Tabela e kodimit Base64
Vlera Char Vlera Char Vlera Char Vlera 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 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 /

Zgjidhja e fundit të lojës

Në fund të procesit të kodimit, mund të ketë një problem. Nëse madhësia e të dhënave origjinale në bajt është shumëfish i tre, gjithçka funksionon mirë. Nëse nuk është, mund të ketë bajt bosh. Për kodimin e duhur, nevojiten saktësisht 3-bajtë të dhëna binare.

Zgjidhja është të shtohen bajt të mjaftueshëm me vlerë 0 për të krijuar një grup 3 bajt. Dy vlera të tilla shtohen nëse të dhënat kanë nevojë për një bajt shtesë të dhënash, njëra shtohet për dy bajt shtesë.

Sigurisht, këto '0' pasuese artificiale nuk mund të kodohen duke përdorur tabelën e kodimit më poshtë. Ata duhet të përfaqësohen nga një karakter i 65-të. Karakteri i mbushjes Base64 është shenja e barabartë (=) dhe vendoset në fund të të dhënave të koduara.

Recommended: