Skip to main content

Како Басе64 Енцодинг ради

Anonim

Ако је интернет информацијски аутопут, онда је пут за е-пошту ужа олуја. Само врло мали возови могу проћи.

Транспортни систем е-поште дизајниран је само за обичан АСЦИИ текст. Покушај слања текста на другим језицима или произвољних датотека је као што је купити камион кроз клизаву.

Како Велики Камион пролази кроз Равину?

Тада како шаљете велики камион кроз малу клупу? Морате га однети на делове на једном крају, транспортујте комаде кроз клетарац и поново направити камион од комада на другом крају.

Исто се догађа када пошаљете прилог за датотеку путем е-поште. У процесу познат као кодирање бинарних података трансформисан је у АСЦИИ текст, који се може без проблема пренети у е-пошту. На крају примаоца, подаци се декодирају и оригинална датотека је поново изграђена.

Један од начина кодирања произвољних података као обичан АСЦИИ текст је Басе64. То је једна од техника које МИМЕ стандард користи за слање података који нису обичан текст.

Басе64 у Ресцуе

Кодирање Басе64 подразумева три бајта, од којих свака садржи осам бита, и представља их као четири принтабле знака у АСЦИИ стандарду. То чини у суштини два корака.

Први корак је претворити три бајта у четири броја од шест бита. Сваки карактер АСЦИИ стандарда састоји се од седам битова. Басе64 користи само 6 бита (одговара 2 ^ 6 = 64 карактера) како би се осигурало да се кодирани подаци могу штампати и човеку читљив. Ниједан од специјалних знакова који су доступни у АСЦИИ-у се не користе.

64 карактера (дакле име Басе64) су 10 цифара, 26 слова мале слова, 26 великих слова као и '+' и '/'.

Ако су, на пример, три бајта 155, 162 и 233, одговарајући (и застрашујући) битни ток је 100110111010001011101001, што одговара 6-битним вредностима 38, 58, 11 и 41.

Ови бројеви се претварају у АСЦИИ знаке у другом кораку помоћу табеле кодирања Басе64. 6-битне вредности нашег примера преведу на АСЦИИ секвенцу "м6Лп".

  • 155 -> 10011011
  • 162 -> 10100010
  • 233 -> 11101001
  • 100110 -> 38
  • 111010 -> 58
  • 001011 -> 11
  • 101001 -> 41
  • 38 -> м
  • 58 -> 6
  • 11 -> Л
  • 41 -> стр

Овај двостепени процес се примењује на читав низ бајтова који су кодирани. Да би се обезбедило да се кодирани подаци могу исправно одштампати и да не прелазе границе дужине линије поштанског сервера, уносе се нови линијски знакови како би се задржале дужине линије испод 76 знакова. Нови знакови су кодирани као сви остали подаци.

Решавање Ендгамеа

На крају процеса кодирања, можда ћемо доћи до проблема. Ако је величина првобитних података у бајтовима вишеструка од три, све иде добро. Ако није, можемо завршити са једним или два 8-битна бајта. Међутим, за правилно кодирање, требају нам тачно три бајта.

Решење је додати довољно бајтова са вриједношћу '0' за креирање 3-бајтне групе. Две такве вредности додају се ако имамо један додатни бајт података, један је додан за два додатна бајта.

Наравно, ове вештачке траке "0" се не могу кодирати користећи табелу кодирања испод. Они морају бити представљени са 65-им знаком.

Основни карактер за Басе64 је '='. Наравно, он се може појавити само на крају кодираних података.

Басе64 Енцодинг Табле

ВредностЦхар ВредностЦхар ВредностЦхар ВредностЦхар
0А 16К 32г 48в
1Б 17Р 33х 49Икс
2Ц 18С 34и 50и
3Д 19Т 35ј 51з
4Е 20У 36к 520
5Ф 21В 37л 531
6Г 22В 38м 542
7Х 23Икс 39н 553
8Ја 24И 40о 564
9Ј 25З 41стр 575
10К 26а 42к 586
11Л 27б 43р 597
12М 28ц 44с 608
13Н 29д 45т 619
14О 30е 46у 62+
15П 31ф 47в 63/