Base64 коддоо

Base64 коддоо куралы менен сиз киргизген текстти Base64 ыкмасы менен шифрлей аласыз. Кааласаңыз, сиз шифрленген Base64 кодун Base64 Decode куралы менен чечмелей аласыз.

Base64 коддоо деген эмне?

Base64 Encoding – бул экилик берилиштерди кээ бир чектелген символдук коддоолорду гана колдонгон чөйрөлөрдө ташууга мүмкүндүк берген коддоо схемасы (бардык символ коддору колдонулбай турган чөйрөлөр, мисалы, xml, html, скрипт, заматта кабарлашуу колдонмолору). Бул схемадагы символдордун саны 64, ал эми Base64 сөзүндөгү 64 саны ушул жерден келип чыккан.

Эмне үчүн Base64 коддоо керек?

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

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

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

Base64 коддоосунда 3 * 8 бит = 3 байттан турган 24 бит маалымат 6 биттен турган 4 топко бөлүнөт. Бул 4 6 биттик топтун [0-64] ортосундагы ондук санга туура келген символдор коддоо үчүн Base64 таблицасынан дал келет. Base64 коддоосунун натыйжасында алынган символдордун саны 4кө эселүү болушу керек. 4кө эселик болбогон коддолгон маалымат жараксыз Base64 маалыматы. Base64 алгоритми менен коддоодо, коддоо аяктагандан кийин, эгерде берилиштердин узундугу 4кө эселик болбосо, коддоонун аягына "=" (тең) символу 4кө эселенгенге чейин кошулат. Мисалы, бизде коддоонун натыйжасында 10 белгиден турган Base64 коддолгон маалыматтар болсо, аягына эки "==" кошуу керек.

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

Мисалы, 155, 162 жана 233 үч ASCII санын алгыла. Бул үч сан 100110111010001011101001 экилик агымын түзөт. Сүрөт сыяктуу бинардык файлда ондогон же жүздөгөн миңдеген нөлдөр жана бирдиктер үчүн иштеген бинардык агым бар. Base64 коддоочусу бинардык агымды алты белгиден турган топторго бөлүү менен башталат: 100110 111010 001011 101001. Бул топтордун ар бири 38, 58, 11 жана 41 сандарына которулат. Алты белгиден турган экилик агым бинардык (же негизги) ортосунда айландырылат. 2) экилик массивде 1 менен көрсөтүлгөн ар бир маанини позициялык квадрат менен квадраттоо аркылуу ондук (базалык-10) символдорго. Оңдон солго жылып, нөлдөн баштап, бинардык агымдагы маанилер 2^0, андан кийин 2^1, андан кийин 2^2, андан кийин 2^3, андан кийин 2^4, андан кийин 2^ билдирет. 5.

Бул жерде дагы бир жолу карап көрөлү. Солдон баштап, ар бир позиция 1, 2, 4, 8, 16 жана 32ге барабар. Эгерде уячанын экилик саны 1 болсо, сиз ошол маанини кошосуз; уяча 0 болсо, сиз жок болуп жатасыз. Экилик массив 100110 38ге айланат: 0 * 2 ^ 01 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 = 0 + 2 ондук + 4 + 0 + 0 + 32. Base64 коддоосу бул бинардык сапты алып, аны 6 биттик 38, 58, 11 жана 41 маанилерине бөлөт. Акырында, бул сандар Base64 коддоо таблицасын колдонуу менен ASCII символдоруна айландырылат.