எப்படி Base64 என்கோடிங் படைப்புகள்

இணைய தகவல் நெடுஞ்சாலை என்றால், மின்னஞ்சலுக்கான பாதையானது ஒரு குறுகிய பள்ளத்தாக்கு. மிக சிறிய வண்டிகள் மட்டுமே கடக்க முடியும்.

மின்னஞ்சலின் போக்குவரத்து அமைப்பு எளிய ASCII உரைக்கு மட்டுமே வடிவமைக்கப்பட்டுள்ளது. வேறொரு மொழியிலோ அல்லது தன்னிச்சையான கோப்புகளிலோ உரையை அனுப்ப முயற்சிக்கிறீர்கள்;

பெரிய டிரக் எவ்வாறு ஏரி வழியாக செல்கிறது?

பிறகு எப்படி ஒரு சிறிய டிரக் வழியாக ஒரு பெரிய டிரக்கை அனுப்புகிறீர்கள்? நீங்கள் ஒரு முடிவில் அதை துண்டுகளாக எடுத்துக் கொள்ள வேண்டும், பள்ளத்தாக்கின் வழியாக சங்கிலிகளைக் கடந்து, மற்றைய துண்டுகளிலிருந்து டிரக்கை மீண்டும் கட்டவும்.

நீங்கள் மின்னஞ்சல் மூலம் கோப்பு இணைப்பு அனுப்பும் போது அதே நடக்கும். பைனரி தரவு குறியாக்கம் என அழைக்கப்படும் ஒரு செயல்பாட்டில் ASCII உரைக்கு மாற்றியமைக்கப்படுகிறது, இது மின்னஞ்சலில் பிரச்சினைகள் இல்லாமல் அனுப்பப்படலாம். பெறுநரின் முடிவில், தரவு நீக்கப்பட்டு, அசல் கோப்பு மீண்டும் கட்டப்பட்டுள்ளது.

எளிய ASCII உரை குறியாக்கம் ஒரு முறை தரவு Base64 ஆகும். இது சாதாரண உரையைத் தவிர வேறு தரவை அனுப்ப MIME தரநிலையால் பயன்படுத்தப்படும் நுட்பங்களில் ஒன்றாகும்.

மீட்புக்கு Base64

Base64 என்கோடிங் மூன்று பைட்டுகள் எடுக்கும், இவை ஒவ்வொன்றும் எட்டு பிட்கள் கொண்டவை, அவை ASCII தரநிலையில் நான்கு அச்சிடத்தக்க எழுத்துகளாகக் குறிக்கின்றன. அது இரண்டு படிகள் அடிப்படையில் செய்கிறது.

முதல் படி மூன்று பைட்டுகள் நான்கு பிட்கள் 6 பிட்களாக மாற்றுவதாகும். ASCII தரநிலையில் உள்ள ஒவ்வொரு எழுத்தும் ஏழு பிட்டுகளைக் கொண்டுள்ளது. குறியிடப்பட்ட தரவை அச்சிடத்தக்கதாகவும் மனிதகுலமாக வாசிக்கக்கூடியதாகவும் இருப்பதை உறுதிப்படுத்த Base64 மட்டும் 6 பிட்டுகளைப் பயன்படுத்துகிறது (2 ^ 6 = 64 எழுத்துகளுக்கு ஒத்திருக்கிறது). ASCII இல் உள்ள சிறப்பு எழுத்துக்கள் எதுவும் பயன்படுத்தப்படவில்லை.

64 எழுத்துகள் (எனவே Base64 பெயர்) 10 இலக்கங்கள், 26 சிறிய எழுத்துக்குறிகள், 26 பெரிய எழுத்துக்குறிகள் மற்றும் '+' மற்றும் '/' ஆகியவை.

உதாரணமாக, மூன்று பைட்டுகள் 155, 162 மற்றும் 233 ஆகும், தொடர்புடைய (மற்றும் பயமுறுத்தும்) பிட் ஸ்ட்ரீம் 100110111010001011101001 ஆகும், இது 6-பிட் மதிப்புகள் 38, 58, 11 மற்றும் 41 ஐ ஒத்துள்ளது.

இந்த எண்களை Base64 குறியீட்டு அட்டவணையைப் பயன்படுத்தி இரண்டாவது படிநிலையில் ASCII கதாபாத்திரங்களாக மாற்றப்படுகின்றன. எங்கள் உதாரணத்தின் 6 பிட் மதிப்புகள் ASCII வரிசை "m6Lp" க்கு மொழிபெயர்க்கப்படுகின்றன.

குறியாக்கப்படும் பைட்டுகளின் முழு வரிசைக்கு இந்த இரண்டு-படி செயல்முறை பயன்படுத்தப்படுகிறது. குறியிடப்பட்ட தரவை ஒழுங்காக அச்சிட முடியும் மற்றும் எந்த அஞ்சல் சேவையகத்தின் வரி நீள வரம்பை மீறுகிறது என்பதை உறுதிப்படுத்த, 76 எழுத்துகளுக்கு கீழே வரி நீளங்களை வைக்க புதிய வரிசை எழுத்துகள் சேர்க்கப்படுகின்றன. புதியது எழுத்துக்கள் எல்லா பிற தரவுகளையும் குறியாக்கப்பட்டுள்ளன.

எண்ட்கேம் தீர்க்கும்

குறியீட்டு வழிமுறையின் முடிவில், நாம் ஒரு சிக்கலுக்குள் ஓடலாம். பைட்டுகளில் உள்ள அசல் தரவின் அளவு மூன்று மடங்காக இருந்தால் எல்லாம் நன்றாக வேலை செய்கிறது. அது இல்லை என்றால், நாம் ஒன்று அல்லது இரண்டு 8-பிட் பைட்டுகள் மூலம் முடிவடையும். முறையான குறியாக்கத்திற்காக, எங்களுக்கு மூன்று பைட்டுகள் தேவை.

தீர்வு 3 பைட் குழுவை உருவாக்க '0' என்ற மதிப்புடன் பைட்டுகள் போட வேண்டும். ஒரு கூடுதல் பைட் தரவு இருந்தால், இரண்டு கூடுதல் மதிப்புகள் இணைக்கப்படுகின்றன, ஒன்று கூடுதல் பைட்டுகளுக்கு சேர்க்கப்படுகிறது.

நிச்சயமாக, இந்த செயற்கை முன்னிலை '0 கள் கீழே உள்ள குறியீட்டு அட்டவணை பயன்படுத்தி குறியாக்கம் முடியாது. அவர்கள் 65 வது பாத்திரத்தில் குறிப்பிடப்பட வேண்டும்.

Base64 திணிப்பு தன்மை '='. இயற்கையாகவே குறியிடப்பட்ட தரவின் முடிவில் இது எப்போதாவது தோன்றும்.

Base64 குறியீட்டு அட்டவணை

மதிப்பு சார் மதிப்பு சார் மதிப்பு சார் மதிப்பு சார்
0 ஒரு 16 கே 32 கிராம் 48 W
1 பி 17 ஆர் 33 மணி 49 எக்ஸ்
2 சி 18 எஸ் 34 நான் 50 ஒய்
3 டி 19 டி 35 J 51 z,
4 மின் 20 யூ 36 கே 52 0
5 எஃப் 21 வி 37 எல் 53 1
6 ஜி 22 டபிள்யூ 38 மீ 54 2
7 எச் 23 எக்ஸ் 39 N 55 3
8 நான் 24 ஒய் 40 56 4
9 ஜே 25 இசட் 41 57 5
10 கே 26 ஒரு 42 கே 58 6
11 எல் 27 43 ஆர் 59 7
12 எம் 28 44 ங்கள் 60 8
13 என் 29 45 டி 61 9
14 30 46 u 62 +
15 பி 31 47 வி 63 /