Рамзгузории Base64

Бо асбоби рамзгузории Base64, шумо метавонед матни воридкардаатонро бо усули Base64 рамзгузорӣ кунед. Агар шумо хоҳед, шумо метавонед рамзи рамзгузоришудаи Base64-ро бо асбоби Base64 Decode рамзкушоӣ кунед.

Рамзгузории Base64 чист?

Base64 Encoding як схемаи рамзгузорӣ мебошад, ки имкон медиҳад додаҳои дуӣ дар муҳитҳое интиқол дода шаванд, ки танҳо баъзе рамзгузории аломатҳои маҳдудро истифода мебаранд (муҳитҳое, ки на ҳама рамзҳои аломат истифода мешаванд, ба монанди xml, html, скрипт, замимаҳои паёмнависии фаврӣ). Шумораи аломатҳои ин схема 64 аст ва рақами 64 дар калимаи Base64 аз ин ҷо бармеояд.

Чаро рамзгузории Base64 истифода мешавад?

Зарурати рамзгузории Base64 аз мушкилоте бармеояд, ки ҳангоми интиқоли ВАО дар формати хоми дуӣ ба системаҳои матнӣ ба вуҷуд меоянд. Азбаски системаҳои ба матн асосёфта (масалан, почтаи электронӣ) маълумоти бинариро ҳамчун доираи васеи аломатҳо, аз ҷумла аломатҳои махсуси фармонӣ тафсир мекунанд, аксарияти маълумоти дуӣ, ки ба воситаи интиқол интиқол дода мешаванд, аз ҷониби ин системаҳо нодуруст шарҳ дода мешаванд ва ҳангоми интиқол гум ё вайрон мешаванд. раванд.

Яке аз усулҳои рамзгузории ин гуна додаҳои дуӣ ба тарзе, ки чунин мушкилоти интиқолро пешгирӣ мекунад, фиристодани онҳо ҳамчун матни оддии ASCII дар формати рамзгузоришудаи Base64 мебошад. Ин яке аз усулҳое мебошад, ки стандарти MIME барои фиристодани маълумот ғайр аз матни оддӣ истифода мебарад. Бисёр забонҳои барномасозӣ, аз қабили PHP ва Javascript, функсияҳои рамзгузорӣ ва рамзкушоии Base64-ро барои тафсири додаҳои тавассути рамзгузории Base64 интиқолшуда дар бар мегиранд.

Мантиқи рамзгузории Base64

Дар рамзгузории Base64, 3 * 8 бит = 24 бит маълумоте, ки аз 3 байт иборат аст, ба 4 гурӯҳи 6 бит тақсим карда мешавад. Аломатҳои мувофиқи қимматҳои даҳӣ байни [0-64] аз ин 4 гурӯҳи 6-битӣ аз ҷадвали Base64 барои рамзгузорӣ мувофиқ карда мешаванд. Шумораи аломатҳое, ки дар натиҷаи рамзгузории Base64 ба даст омадаанд, бояд чандкаратаи 4 бошад. Маълумоти рамзгузоришуда, ки чандкаратаи 4 нест, маълумоти Base64 эътибор надорад. Ҳангоми рамзгузорӣ бо алгоритми Base64, вақте ки рамзгузорӣ ба итмом мерасад, агар дарозии маълумот чандкаратаи 4 набошад, аломати "=" (баробар) ба охири рамзгузорӣ то ба 4 баробар шудани он илова карда мешавад. Масалан, агар мо дар натиҷаи рамзгузорӣ маълумоти рамзгузоришудаи 10 аломати Base64 дошта бошем, бояд ба охир ду "==" илова карда шавад.

Намунаи рамзгузории Base64

Масалан, се рақами ASCII-ро 155, 162 ва 233 гиред. Ин се адад ҷараёни дуии 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 гардиш мекунад: 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 табдил дода мешаванд.