Cumu Codificazioni Base64

Sì l'internet hè l'auturione d'infurmazioni, allura u percorsu per email hè un ravine strettu. Solu carriche pocu pò passà.

U sistema di trasportu di email hè chjamatu solu per u testu plain ASCII. A tentativu di mandà u testu in altri lingue o arbitrariità hè cusì cum'è un camionu per u ravine.

Cumu viaghja u grande cammellu per u Ravine?

Allora, quandu vi mancu un cammellu grandi per un petit ravine? L'avete da piglià a pezzi nantu à l'ultima, u trasportu i pezzi attraversu u ravine, è ricustruisce u camionu da e pezzi nantu à l'altru finale.

U stessu succorsu si mandate un immeuble file via email . In un prucedimentu cunnisciutu cum'è codificazione di e ducumentu binariu hè cambiatu in testu ASCII, chì pò esse trasportatu in email senza prublemi. In u finale di u repertoriu, a dati hè decode è u schedariu uriginale sò ricustruiutu.

Un metu di codificà infurmazioni arbitrarie chì u testu plurali ASCII hè Base64. Hè una di e tecniche impiegati da l' esterno MIME per enviarà e dati altri solu testu di chiaru .

Base64 à u Rescue

A codificazione Base64 pigghia tri bytes, chì cunsistenti di ottu bette, è rapprisenta cum'è quattru caràcter printable in u standard ASCII. Hè ciò chì hà fattu, in dui passi.

U primu passu hè di cunvertisce trè perte à quattru numeri di sei bits. Ogni carattere in u standard ASCII compone di sette tene. Base64 solu adupite 6 bits (rispundenti à 2 ^ 6 = 64 caratteri) per assicurà e ducumentazione codificata hè imprimible è umanu leghile. Nisunu di i caratteri privati ​​dispunibuli à ASCII sò utilizati.

I 64 caratteri (dapoi u nome Base64) sò 10 numeri, 26 caràttii di minuscusani, 26 caratteri maiò è ancu "+" è "/".

Se per esempiu, i trè bytes sò 155, 162 è 233, u flussu di u bituminatu (è spaventusu) hè 100110111010001011101001, chì à risponde à i 6-bit values ​​38, 58, 11 è 41.

Questi numeri sò cunvertisce in caratteri ASCII in u segondu passu usendu a basa di codificazione Base64. I valori di 6 bits di u nostru esempiu traduce à a seqüència ASCII "m6Lp".

Stu prucessu di duie etapasu hè appiicatu à tutta a secùncia di l'octetus chì sò codificati. Per assicurà a dati codificati pò esse stampati appuntu è ùn sia micca in u limitu di ligna di u servitore di mail, i caratteri novi sò inseriti per mantene alleanza di longhi sottu 76 caratteri. I caratteri novi è codificati cum'è l'altri dati.

Soluzione u ghjurnale

À a fine di u processu di codificazione, pudemu avè un priculu. Se u grandezza di e dati originali in bytes hè un múltiplo di trè, tuttu hè bella. Se ùn hè micca, pudemu finisce cun unu o dui 8 bytes. Per una coda propria, avemu bisognu trova cù trè persa.

A suluzione hè di append sufficient bytes cun un valore di '0' per creà un gruppu 3-byte. Dui tali valori sò appendicati si avemu un altru byte di dati, unu hè appendicatu per dui bytes extra.

Di sicuru, l'articuli di l'articuli "0's ùn sò micca stati codificati usendu a tola di codificazione sottu. Anu deve esse rapprisentatu da un caratteru 65.

U basa64 padding carattere hè "=". Naturalment, pò ancu appena sempre in fine di e codificazione.

Base di codificazione Base64

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