ఇంటర్నెట్ సమాచారం హైవే ఉంటే, అప్పుడు మార్గం కోసం మార్గం ఒక ఇరుకైన లోయ ఉంది. చాలా చిన్న బండ్లు మాత్రమే పాస్ చేయగలవు.
ఇమెయిల్ యొక్క రవాణా వ్యవస్థ సాదా ASCII టెక్స్ట్ కోసం మాత్రమే రూపొందించబడింది. ఇతర భాషల్లో లేదా ఏకపక్ష ఫైల్లో వచనాన్ని పంపించడానికి ప్రయత్నిస్తున్నది లోయ ద్వారా ట్రక్కును పొందడం వంటిది.
బిగ్ ట్రక్ ఎలా దండయాత్ర ద్వారా వెళ్ళి?
అప్పుడు మీరు చిన్న ట్రైన్ను పెద్ద ట్రక్కును ఎలా పంపుతారు? మీరు ఒక చివరన ముక్కలుగా దానిని తీసుకెళ్ళాలి, పైకప్పు ద్వారా ముక్కలను రవాణా చేయాలి మరియు మరొక వైపున ముక్కలనుండి ట్రక్కును పునర్నిర్మించాలి.
మీరు ఇమెయిల్ ద్వారా ఫైల్ జోడింపును పంపినప్పుడు అదే జరుగుతుంది. ఎన్కోడింగ్ అని పిలువబడే ఒక ప్రక్రియలో బైనరీ డేటా ASCII టెక్స్ట్కు మార్చబడుతుంది, ఇది సమస్యలు లేకుండా ఇమెయిల్లో రవాణా చేయబడుతుంది. గ్రహీత ముగింపులో, డేటా డీకోడ్ చేయబడింది మరియు అసలు ఫైల్ పునర్నిర్మించబడింది.
సాదా ASCII వచనంగా ఏకీకృత ఏకపక్ష డేటా యొక్క ఒక విధానం Base64. సాదా వచనం కంటే ఇతర సమాచారాన్ని పంపడానికి MIME ప్రమాణం చేత ఉపయోగించబడే టెక్నిక్లలో ఇది ఒకటి.
రెస్క్యూ కు బేస్ 64
Base64 ఎన్కోడింగ్ మూడు బైట్లు, ప్రతి ఎనిమిది బిట్స్ కలిగి, మరియు వాటిని ASCII ప్రమాణంలో నాలుగు ముద్రణా అక్షరాలుగా సూచిస్తుంది. ఇది రెండు దశల్లో చేస్తుంది.
మొదటి దశ ఆరు బైట్లు నాలుగు సంఖ్యలకు మూడు బైట్లు మార్చడం. ASCII ప్రమాణంలోని ప్రతి పాత్ర ఏడు బిట్లను కలిగి ఉంటుంది. ఎన్కోడ్ చేసిన డేటా ముద్రించదగినది మరియు మానవీయంగా రీడబుల్ అవుతుందని నిర్ధారించడానికి Base64 మాత్రమే 6 బిట్స్ (2 ^ 6 = 64 అక్షరాలకు అనుగుణంగా) ను ఉపయోగిస్తుంది. ASCII లో అందుబాటులో ఉన్న ప్రత్యేక అక్షరాలు ఏవీ ఉపయోగించబడవు.
64 అక్షరాలు (అందుకే బేస్64 పేరు) 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 -> m
- 58 -> 6
- 11 -> L
- 41 -> పే
ఈ రెండు-దశల ప్రక్రియ ఎన్కోడ్ చేయబడిన బైట్ల మొత్తం క్రమంలో వర్తించబడుతుంది. ఎన్కోడ్ చేయబడిన డేటాను సరిగ్గా ముద్రించవచ్చు మరియు మెయిల్ సర్వర్ యొక్క లైన్ పొడవు పరిమితిని మించకుండా ఉండటానికి, 76 అక్షరాల కంటే తక్కువ లైన్ లైన్లను ఉంచడానికి క్రొత్త అక్షరాలను చేర్చబడతాయి. కొత్త లైన్ అక్షరాలు అన్ని ఇతర డేటా వంటి ఎన్కోడ్.
ఎండ్ గేమ్ను పరిష్కరించడం
ఎన్ కోడింగ్ ప్రక్రియ ముగిసే సమయానికి, మేము సమస్యను ఎదుర్కొంటాము. బైట్లు లో అసలు డేటా పరిమాణం మూడు యొక్క బహుళ ఉంటే, ప్రతిదీ జరిమానా పనిచేస్తుంది. అది కాకపోతే, మేము ఒకటి లేదా రెండు 8-బిట్ బైట్లతో ముగుస్తుంది. సరైన ఎన్కోడింగ్ కోసం, మాకు ఖచ్చితంగా మూడు బైట్లు అవసరం.
3-బైట్ సమూహాన్ని రూపొందించడానికి '0' విలువతో తగినంత బైట్లు చేర్చడం ఈ పరిష్కారం. మనకు అదనపు బైట్ డేటా ఉంటే, అటువంటి రెండు విలువలు అనుబంధించబడి ఉంటాయి, ఒకటి రెండు అదనపు బైట్ల కొరకు చేర్చబడుతుంది.
వాస్తవానికి, ఈ కృత్రిమ వెనుకంజలో '0 లు క్రింద ఎన్కోడింగ్ పట్టికను ఉపయోగించి ఎన్కోడ్ చేయబడవు. వారు 65 వ పాత్ర ద్వారా ప్రాతినిధ్యం వహించాలి.
Base64 పాడింగ్ పాత్ర '='. సహజంగా, ఎన్కోడ్ చేయబడిన డేటా చివరిలో మాత్రమే ఇది కనిపిస్తుంది.
Base64 ఎన్కోడింగ్ టేబుల్
విలువ | చార్ | విలువ | చార్ | విలువ | చార్ | విలువ | చార్ |
---|---|---|---|---|---|---|---|
0 | ఒక | 16 | Q | 32 | గ్రా | 48 | w |
1 | B | 17 | R | 33 | h | 49 | x |
2 | సి | 18 | S | 34 | నేను | 50 | y |
3 | D | 19 | T | 35 | j | 51 | z |
4 | E | 20 | U | 36 | k | 52 | 0 |
5 | F | 21 | V | 37 | l | 53 | 1 |
6 | G | 22 | W | 38 | m | 54 | 2 |
7 | H | 23 | X | 39 | n | 55 | 3 |
8 | నేను | 24 | Y | 40 | o | 56 | 4 |
9 | J | 25 | Z | 41 | p | 57 | 5 |
10 | K | 26 | ఒక | 42 | q | 58 | 6 |
11 | L | 27 | బి | 43 | r | 59 | 7 |
12 | M | 28 | సి | 44 | లు | 60 | 8 |
13 | N | 29 | d | 45 | t | 61 | 9 |
14 | O | 30 | ఇ | 46 | u | 62 | + |
15 | పి | 31 | f | 47 | v | 63 | / |