Base64 කේතනය කරන ආකාරය

අන්තර්ජාලය තොරතුරු මාර්ගයක් නම් ඊ-මේල් සඳහා මාර්ගයක් පටු උකුස්සන් වේ. ඉතා කුඩා කරත්ත පමණක් සමත් විය හැක.

විද්යුත්-තැපැල් ප්රවාහන පද්ධතිය සවිස්තර ASCII පෙළ පමණක් නිර්මාණය කර ඇත. වෙනත් භාෂාවලින් පිටපත් කිරීමට උත්සාහ කිරීම හෝ අත්තනෝමතික ගොනු ලිපිගොනු කුණාටුව හරහා ප්රවාහනය කිරීම වැනි ය.

මහා ට්රක් රථය හරහා රිවින් හරහා ගමන් කරන්නේ කෙසේද?

එහෙනම් ඔබ කුඩා කන්දක් හරහා විශාල ට්රක් එකක් යවන්නේ කෙසේද? එක පැත්තක කෑලි කෑලි කෑලි කර ගෙන කන්දෙන් කැබලි ප්රවාහනය කළ යුතු අතර අනෙක් පැත්තෙන් කෑලි නැවත ගොඩනඟා ගන්න.

ඔබ ඊමේල් හරහා ගොනු ඇමුණුමක් එවන විට එයම සිදුවනු ඇත. ද්විමය දත්ත සංකේත කිරීම ලෙස ක්රියාකරන ASCII පෙළ ලෙස පරිවර්තනය කරනු ලැබේ, ගැටළු නොමැතිව ඊමේල් හරහා ප්රවාහනය කළ හැකිය. ලබන්නාගේ අවසානයෙහි දත්ත දත්ත සැකසෙන අතර මුල් ගොනුව නැවත සාදා ඇත.

සරල ASCII පෙළ ලෙස අත්තනෝමතික දත්ත කේතනය කරන එක් ක්රමයක් Base64 වේ. සාමාන්ය පාඨ වලට අමතරව දත්ත යැවීම සඳහා MIME සම්මත භාවිතා කරන තාක්ෂණයෙන් එකක්.

Base64 බේරා ගැනීම සඳහා

Base64 කේතනය බිටු තුනකින් සමන්විත වන අතර එය බිට් අටකින් සමන්විත වන අතර ඒවා ASCII ප්රමිතියේ මුද්රණ අකුරු හතරක් ලෙස නිරූපනය කරයි. එය මූලික වශයෙන් පියවර දෙකක් ඇත.

පළමු අදියර වන්නේ බිට් හයක සංඛ්යා හතරකට බයිට 3 ක් පරිවර්තනය කිරීමයි. ASCII සම්මතයේ සෑම අක්ෂරයක්ම බිට් 7 කින් සමන්විත වේ. Base64 පමණක් සංකේතාත්මක දත්ත මුද්රණය කළ හැකි හා මානව කියවිය හැකි බවට සහතික කිරීම සඳහා බිටු 6 භාවිතා කරයි (2 ^ 6 = අකුරු 64). ASCII හි ඇති විශේෂිත අක්ෂර කිසිවක් භාවිතා නොවේ.

64 අක්ෂර (එබැවින් Base64 නාමය) සංඛ්යා 10 ක්, කුඩා අකුරු අක්ෂර 26 ක්, මහකුරු අකුරු 26 ක් සහ '+' සහ '/' වේ.

නිදසුනක් ලෙස, බයිටේ තුනම 155, 162 සහ 233 නම්, අනුරූප (හා භයානක) බිටු ප්රවාහය 100110111010001011101001 වේ, එමගින් 6-bit අගයන් 38, 58, 11 සහ 41 ට අනුරූපී වේ.

මෙම සංඛ්යා Base64 කේතන වගුව භාවිතා කරමින් දෙවන පියවරේදී ASCII අක්ෂර පරිවර්තනය කරනු ලැබේ. අපගේ උදාහරණයේ 6-bit අගයන් ASCII අනුක්රමය "m6Lp" වෙත පරිවර්තනය වේ.

මෙම ද්වි-පියවර ක්රියාවලිය සංකේතනය කර ඇති බයිට් වල අනුපිළිවෙලට අදාළ වේ. කේතනාත්මක දත්ත නිසියාකාරව මුද්රණය කළ හැකි අතර ඕනෑම තැපැල් සේවාදායකයේ රේඛාව දිග සීමාව ඉක්මවා නොයෑම, අක්ෂර 76 ක අඩු රේඛාවක් දිගු කිරීම සඳහා නව පේළි අක්ෂර ඇතුලත් කර ඇත. නව රේඛා අක්ෂර සියල්ල අනෙකුත් දත්ත මෙන් සංකේත කරනු ලැබේ.

අවසානය විසඳීම

සංකේතාත්මක ක්රියාවලිය අවසානයේදී, අප ගැටළුවක් ඇතිවිය හැකිය. බයිට් වල මුල් දත්ත ප්රමාණය තුනෙන් එකක් නම්, සියල්ල හොඳින් ක්රියා කරයි. එය එසේ නොවේ නම්, අපෙන් 8-bit බයිට් එකක් හෝ දෙකක් සමඟ අවසන් විය හැකිය. නිසි සංකේතනය සඳහා, අපට අවශ්යව ඇත්තේ බයිට්ස් 3 ක් පමණි.

විසඳුම වන්නේ 3-byte සමූහයක් සෑදීමට "0" අගයක් සමඟ ප්රමාණවත් තරම් බයිට භාවිතා කිරීමටය. එක් එක් අමතර දත්ත බයිටයක් තිබේ නම් එවැනි අගයන් දෙකක් එකතු කරනු ලැබේ, එක් අතිරේක බයිට් සඳහා එක් වේ.

ඇත්ත වශයෙන්ම, මෙම කෘතිම පසුපස '0' ට පහත කේත කේතන ක්රමය භාවිතයෙන් සංකේතවත් කළ නොහැකිය. ඔවුන් 65 වන අක්ෂර වලින් නියෝජනය කළ යුතුය.

Base64 padding අක්ෂරය '='. ස්වභාවිකවම, එය සංකේතාත්මක දත්ත අවසානයේ දක්නට ලැබේ.

Base64 කේතන කේතය

වටිනාකම චාර් වටිනාකම චාර් වටිනාකම චාර් වටිනාකම චාර්
0 16 Q 32 g 48 w
1 බී 17 ආර් 33 h 49 x
2 සී 18 එස් 34 මම 50 y
3 ඩී 19 ටී 35 ජේ 51 z
4 20 U 36 k 52 0
5 එෆ් 21 V 37 l 53 1
6 ජී 22 ඩබ් 38 එම් 54 2
7 එච් 23 x 39 n 55 3
8 මම 24 Y 40 o 56 4
9 ජේ 25 Z 41 p 57 5
10 කේ 26 42 q 58 6
11 එල් 27 බී 43 ආර් 59 7
12 එම් 28 c 44 60 8
13 එච් 29 d 45 ටී 61 9
14 O 30 46 62 +
15 පී 31 f 47 v 63 /