Base64 коддоо кантип иштейт

Мазмуну:

Base64 коддоо кантип иштейт
Base64 коддоо кантип иштейт
Anonim

Base64 коддоо - бул бинардык берилиштерди 6 биттик символдун көрүнүшүнө айландыруу аркылуу экилик берилиштерди ASCII сап форматына айландыруу процесси. Base64 коддоо ыкмасы экилик маалыматтар, мисалы, сүрөттөр же видеолор жөнөкөй текст (ASCII) форматында берилиштерди өткөрүү үчүн иштелип чыккан системалар аркылуу өткөрүлүп берилгенде колдонулат.

Эмне үчүн Base64 коддоо колдонулат?

Base64 коддоо муктаждыгы медиа экилик форматта текстке негизделген системаларга өткөрүлүп берилгенде пайда болгон көйгөйлөрдөн келип чыгат.

Текстке негизделген системалар (мисалы, электрондук почта) экилик берилиштерди символдордун кеңири диапазону, анын ичинде атайын буйрук символдору катары чечмелегендиктен, медианы өткөрүү үчүн берилүүчү экилик берилиштердин көбү ошол системалар тарабынан туура эмес чечмеленет жана жоголгон же бузулган. өткөрүү процесси.

Image
Image

Мындай өткөрүү көйгөйлөрүн болтурбоо үчүн, экилик берилиштердин мындай түрүн коддоонун бир ыкмасы - аны Base64 коддолгон форматында жөнөкөй ASCII тексти катары жөнөтүү. Бул жөнөкөй тексттен башка маалыматтарды жөнөтүү үчүн MIME стандартында колдонулган ыкмалардын бири.

Көптөгөн программалоо тилдери, мисалы, PHP жана Javascript, Base64 коддоосу аркылуу берилүүчү маалыматтарды чечмелөө үчүн Base64 коддоо жана декоддоо функцияларын камтыйт.

Base64 коддоо логикасы

Base64 коддоо экилик берилиштерди 3 толук байттан турган 6 биттик сегменттерге бөлөт жана аларды ASCII стандартында басып чыгаруучу символдор катары көрсөтөт. Ал муну эки кадам менен жасайт.

Биринчи кадам экилик сапты 6 биттик блокторго бөлүү. Base64 коддолгон маалыматтарды басып чыгарууга жана адам окуй тургандай кылуу үчүн 6 битти гана колдонот (2^6=64 белгиге туура келет). ASCIIде жеткиликтүү атайын белгилердин бири да колдонулбайт.

64 белги (ошондуктан Base64 аталышы) 10 цифра, 26 кичине тамга, 26 баш тамга, ошондой эле Плюс белгиси (+) жана Алдыга кыйшык сызык (/) болуп саналат. Ошондой эле pad деп аталган 65-символ бар, ал Тең белгиси (=). Бул символ экилик берилиштердин акыркы сегментинде толук 6 бит жок болгондо колдонулат.

Base64 коддоо мисалы

Мисалы, 155, 162 жана 233 үч ASCII сандарын алалы. Бул үч сан 100110111010001011101001 экилик агымын түзөт. Сүрөт сыяктуу бинардык файл ондогон же жүздөгөн миңдеген экилик агымдарды камтыйт. жана бир.

Base64 коддору бинардык агымды алты белгиден турган топторго бөлүү менен башталат: 100110 111010 001011 101001. Бул топтордун ар бири 38, 58, 11 жана 41 сандарына которулат.

Алты белгиден турган экилик агым экилик (же база-2) менен ондук (негиз-10) символдорду экилик ырааттуулукта 1 менен көрсөтүлгөн ар бир маанини анын позициялык квадраты менен квадраттоо аркылуу өзгөртөт. Оңдон баштап, солго жылып, нөлдөн баштап, бинардык агымдагы маанилер 2^0, андан кийин 2^1, андан кийин 2^2, андан кийин 2^3, андан кийин 2^4, андан кийин 2^5.

Мына дагы бир жолу карап көрөлү. Солдон баштап, ар бир позиция 1, 2, 4, 8, 16 жана 32ге барабар. Эгерде экилик санда уячада 1 болсо, сиз ошол маанини кошосуз; анын уячасында 0 болсо, анда жок. 100110 экилик сап 38 ондук санына айланат: 02^01 + 12^1 + 12^2 + 02^3 + 02^4 + 12^5=0+2 +4+0+0+32.

Base64 коддоосу бул экилик сапты алып, аны 6-биттик 38, 58, 11 жана 41 маанилерине бөлөт.

Акыры, бул сандар Base64 коддоо таблицасы аркылуу ASCII символдоруна айландырылат. Бул мисалдын 6 биттик маанилери ASCII ырааттуулугуна которулат m6Lp.

Base64 конверсия таблицасын колдонуу:

  • 38 – м
  • 58 – 6
  • 11 – L
  • 41 – p

Бул эки кадамдуу процесс коддолгон бүт бинардык сапка колдонулат.

Коддолгон дайындарды туура басып чыгарууга жана эч кандай почта серверинин сап узундугунун чегинен ашпоого кепилдик берүү үчүн, сап узундугун 76 белгиден төмөн кармоо үчүн жаңы саптын символдору киргизилет. Жаңы саптын символдору башка бардык маалыматтар сыяктуу коддолгон.

Base64 коддоосунун бүт максаты, 3 байт экилик сегменттерди сактоо үчүн толтурууну кошуудан баштап, Base64 таблицасын колдонуу менен бинардыкты текстке айландырууга чейин, өткөрүлүп берилген бинардык маалыматтын бүтүндүгүн сактоо болуп саналат.

Base64 коддоо таблицасы

Төмөнкү таблица Base64 коддоосунда колдонулган бардык 64 символду которгон.

Base64 коддоо таблицасы
Баалуу Char Баалуу Char Баалуу Char Баалуу 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 /

Соңку оюнду чечүү

Коддоо процессинин аягында көйгөй келип чыгышы мүмкүн. Байттардагы баштапкы маалыматтардын өлчөмү үчкө эселенген болсо, баары жакшы иштейт. Эгерде ал жок болсо, анда бош байттар болушу мүмкүн. Туура коддоо үчүн так 3-байт экилик берилиш керек.

Чечим 3 байттык топту түзүү үчүн 0 мааниси бар жетиштүү байттарды кошуу. Эгер берилиштерге кошумча бир байт берилиш керек болсо, ушундай эки маани тиркелет, бири кошумча эки байт үчүн тиркелет.

Албетте, бул жасалма арттагы "0" сандарын төмөндөгү коддоо таблицасы аркылуу коддоо мүмкүн эмес. Алар 65-белги менен көрсөтүлүшү керек. Base64 толтуруу белгиси Теңдик белгиси (=) жана коддолгон маалыматтардын аягында жайгаштырылат.

Сунушталууда: