Hvernig Base64 kóðun virkar

Ef internetið er upplýsingahraðbrautin, þá er leiðin fyrir tölvupósti þröngt gljúfur. Aðeins mjög litlar kerra geta farið framhjá.

Samgöngur kerfi tölvupósts er eingöngu ætlað fyrir einfaldan ASCII texta. Reynt að senda texta á öðrum tungumálum eða handahófi skrá er eins og að fá bíl í gegnum gilið.

Hvernig fer stóra vörubíllinn í gegnum Ravine?

Þá hvernig sendir þú stóran vörubíl í gegnum lítið gil? Þú verður að taka það í sundur í annarri endanum, flytja stykkin í gegnum gilið og endurbyggja lyftarann ​​frá stykkjunum í hinum enda.

Sama gerist þegar þú sendir skrá viðhengi í tölvupósti . Í ferli sem kallast kóðun er tvöfaldur gögn umbreytt í ASCII texta, sem hægt er að flytja í tölvupósti án vandamála. Á endanum viðtakanda er gögnin afkóðuð og upprunalega skráin endurreist.

Ein aðferð við kóðun handahófs gagna sem látlaus ASCII texti er Base64. Það er ein af þeim aðferðum sem notaðar eru við MIME staðalinn til að senda gögn önnur en venjulegan texta .

Base64 til bjargar

Base64 kóðun tekur þremur bæti, hver samanstendur af átta bita, og táknar þær sem fjórar prenta stafi í ASCII staðlinum. Það gerir það í meginatriðum tveimur skrefum.

Fyrsta skrefið er að umbreyta þremur bæti til fjóra sex bita. Hver stafur í ASCII staðlinum samanstendur af sjö bita. Base64 notar aðeins 6 bita (svarar til 2 ^ 6 = 64 stafir) til að tryggja að umrituð gögn séu prentuð og læsileg. Ekkert af sérstökum stafi sem er tiltækt í ASCII er notað.

64 stafirnir (þar með nefnið Base64) eru 10 tölustafir, 26 lágstafir, 26 stór stafir og '+' og '/'.

Ef til dæmis eru þremur bæti 155, 162 og 233, samsvarandi (og ógnvekjandi) bitastrauminn er 100110111010001011101001, sem svarar til 6-bita gildanna 38, 58, 11 og 41.

Þessar tölur eru breytt í ASCII stafi í öðru skrefi með Base64 kóðunartöflunni. 6-bita gildin í dæmi okkar þýða á ASCII röðina "m6Lp".

Þetta tveggja skrefa ferli er beitt á alla röð bila sem eru kóðaðar. Til að tryggja að kóðuð gögnin geti verið rétt prentuð og ekki farið yfir lengdarmörk fyrir póstþjóninn eru nýjar stafi settir inn til að halda línu lengd undir 76 stöfum. Nýju stafirnir eru kóðaðar eins og allar aðrar upplýsingar.

Leysa Endgame

Við lok kóðunarferlisins gætum við lent í vandræðum. Ef stærð upprunalegra gagna í bæti er margfeldi af þremur, virkar allt gott. Ef það er ekki, gætum við endað með einum eða tveimur 8-bita bæti. Fyrir rétta kóðun þurfum við þó nákvæmlega þrjár bæti.

Lausnin er að bæta við nóg bæti með gildi '0' til að búa til 3 bæti hóp. Tveir slíkar gildar eru bætt við ef við höfum eitt aukagildi gagna, einn er bætt við tveimur auka bæti.

Auðvitað er ekki hægt að umrita þessa gervi slóð '0 með kóðunartöflunni hér að neðan. Þeir verða að vera fulltrúar með 65. staf.

The Base64 padding stafurinn er '='. Auðvitað getur það aðeins komið fram í lok kóðuðra gagna.

Base64 kóðunartafla

Gildi Char Gildi Char Gildi Char Gildi Char
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 ég 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 Ég 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 þú 62 +
15 P 31 f 47 v 63 /