Skip to main content

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

Anonim

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

மின்னஞ்சலின் போக்குவரத்து அமைப்பு எளிய 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" க்கு மொழிபெயர்க்கப்படுகின்றன.

  • 155 -> 10011011
  • 162 -> 10100010
  • 233 -> 11101001
  • 100110 -> 38
  • 111010 -> 58
  • 001011 -> 11
  • 101001 -> 41
  • 38 -> மீ
  • 58 -> 6
  • 11 -> எல்
  • 41 -> ப

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

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

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

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

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

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

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

மதிப்புசார் மதிப்புசார் மதிப்புசார் மதிப்புசார்
0ஒரு 16கே 32கிராம் 48W
1பி 17ஆர் 33மணி 49எக்ஸ்
2சி 18எஸ் 34நான் 50ஒய்
3டி 19டி 35J 51z,
4மின் 20யூ 36கே 520
5எஃப் 21வி 37எல் 531
6ஜி 22டபிள்யூ 38மீ 542
7எச் 23எக்ஸ் 39N 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 46u 62+
15பி 31 47வி 63/