Base64 ಎನ್ಕೋಡಿಂಗ್ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

ಇಂಟರ್ನೆಟ್ ಮಾಹಿತಿ ಹೆದ್ದಾರಿ ಆಗಿದ್ದರೆ, ಇಮೇಲ್ಗಾಗಿ ಮಾರ್ಗವು ಕಿರಿದಾದ ಕಂದರವಾಗಿದೆ. ಕೇವಲ ಸಣ್ಣ ಬಂಡಿಗಳು ಮಾತ್ರ ಹಾದು ಹೋಗುತ್ತವೆ.

ಇಮೇಲ್ ಸಾರಿಗೆ ವ್ಯವಸ್ಥೆಯನ್ನು ಸರಳವಾದ ASCII ಪಠ್ಯಕ್ಕಾಗಿ ಮಾತ್ರ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಇತರ ಭಾಷೆಗಳಲ್ಲಿ ಪಠ್ಯವನ್ನು ಕಳುಹಿಸಲು ಪ್ರಯತ್ನಿಸಲಾಗುವುದು ಅಥವಾ ಅನಿಯಂತ್ರಿತ ಫೈಲ್ಗಳು ಕಮರಿ ಮೂಲಕ ಟ್ರಕ್ ಅನ್ನು ಪಡೆಯುವುದು ಹಾಗೆ.

ಕಣಿವೆಯ ಮೂಲಕ ದೊಡ್ಡ ಟ್ರಕ್ ಹೇಗೆ ಹೋಗುತ್ತಿದೆ?

ನಂತರ ನೀವು ಒಂದು ಸಣ್ಣ ಕಣಿವೆಯ ಮೂಲಕ ದೊಡ್ಡ ಟ್ರಕ್ ಅನ್ನು ಹೇಗೆ ಕಳುಹಿಸುತ್ತೀರಿ? ನೀವು ಒಂದು ತುದಿಯಲ್ಲಿ ಅದನ್ನು ತುಂಡುಗಳಾಗಿ ತೆಗೆದುಕೊಂಡು ಹೋಗಬೇಕು, ತುಂಡುಗಳನ್ನು ಕಮರಿ ಮೂಲಕ ಸಾಗಿಸಿ, ಮತ್ತು ಟ್ರಕ್ ತುಂಡುಗಳನ್ನು ಇನ್ನೊಂದು ತುದಿಯಲ್ಲಿ ಪುನರ್ನಿರ್ಮಾಣ ಮಾಡಿ.

ನೀವು ಇಮೇಲ್ ಮೂಲಕ ಫೈಲ್ ಲಗತ್ತನ್ನು ಕಳುಹಿಸಿದಾಗ ಅದೇ ರೀತಿ ಸಂಭವಿಸುತ್ತದೆ. ಬೈನರಿ ಡಾಟಾವನ್ನು ಎನ್ಕೋಡಿಂಗ್ ಎನ್ನುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಎಎಸ್ಸಿಐಐಐ ಪಠ್ಯಕ್ಕೆ ಮಾರ್ಪಡಿಸಲಾಗುತ್ತದೆ, ಅದನ್ನು ಸಮಸ್ಯೆಗಳಿಲ್ಲದೆ ಇಮೇಲ್ನಲ್ಲಿ ಸಾಗಿಸಬಹುದು. ಸ್ವೀಕರಿಸುವವರ ಅಂತ್ಯದಲ್ಲಿ, ಡೇಟಾವನ್ನು ಡಿಕೋಡ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಮೂಲ ಫೈಲ್ ಅನ್ನು ಮರುನಿರ್ಮಿಸಲಾಗಿದೆ.

ಸರಳವಾದ ASCII ಪಠ್ಯದಂತೆ ಅನಿಯಂತ್ರಿತ ಡೇಟಾವನ್ನು ಎನ್ಕೋಡಿಂಗ್ ಮಾಡುವ ಒಂದು ವಿಧಾನವೆಂದರೆ Base64. ಸರಳ ಪಠ್ಯವನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಲು MIME ಪ್ರಮಾಣಿತವು ಬಳಸಿದ ತಂತ್ರಗಳಲ್ಲಿ ಇದು ಒಂದಾಗಿದೆ.

ಬೇಸ್ 64 ಟು ದಿ ರೆಸ್ಕ್ಯೂ

Base64 ಎನ್ಕೋಡಿಂಗ್ ಮೂರು ಬೈಟ್ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಪ್ರತಿಯೊಂದೂ ಎಂಟು ಬಿಟ್ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಮತ್ತು ಅವುಗಳನ್ನು ಎಎಸ್ಸಿಐಐ ಮಾನದಂಡದಲ್ಲಿ ನಾಲ್ಕು ಮುದ್ರಿಸಬಹುದಾದ ಅಕ್ಷರಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಇದು ಮೂಲಭೂತವಾಗಿ ಎರಡು ಹಂತಗಳಲ್ಲಿ ಮಾಡುತ್ತದೆ.

ಮೊದಲ ಹಂತವೆಂದರೆ ಮೂರು ಬೈಟ್ಗಳನ್ನು ನಾಲ್ಕು ಸಂಖ್ಯೆಯ ಆರು ಬಿಟ್ಗಳಾಗಿ ಪರಿವರ್ತಿಸುವುದು. 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" ಗೆ ಭಾಷಾಂತರಿಸುತ್ತವೆ.

ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ಬೈಟ್ಗಳ ಸಂಪೂರ್ಣ ಅನುಕ್ರಮಕ್ಕೆ ಈ ಎರಡು ಹಂತದ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ. ಎನ್ಕೋಡೆಡ್ ಡೇಟಾವನ್ನು ಸರಿಯಾಗಿ ಮುದ್ರಿಸಲಾಗುವುದು ಮತ್ತು ಯಾವುದೇ ಮೇಲ್ ಸರ್ವರ್ನ ಲೈನ್ ಉದ್ದ ಮಿತಿಯನ್ನು ಮೀರಬಾರದು ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, 76 ಅಕ್ಷರಗಳ ಕೆಳಗೆ ಲೈನ್ ಉದ್ದಗಳನ್ನು ಇರಿಸಿಕೊಳ್ಳಲು ಹೊಸ ಲೈನ್ ಅಕ್ಷರಗಳನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆ. ಹೊಸಲೈನ್ ಅಕ್ಷರಗಳನ್ನು ಎಲ್ಲಾ ಇತರ ಡೇಟಾಗಳಂತೆ ಎನ್ಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ.

ಎಂಡ್ಗೇಮ್ ಅನ್ನು ಪರಿಹರಿಸುವುದು

ಎನ್ಕೋಡಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯ ಕೊನೆಯಲ್ಲಿ, ನಾವು ಸಮಸ್ಯೆ ಎದುರಿಸಬೇಕಾಗಬಹುದು. ಬೈಟ್ಗಳಲ್ಲಿನ ಮೂಲ ಡೇಟಾದ ಗಾತ್ರವು ಮೂರು ಗುಣಾಂಶಗಳಾಗಿದ್ದರೆ, ಎಲ್ಲವೂ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಅದು ಇಲ್ಲದಿದ್ದರೆ, ನಾವು ಒಂದು ಅಥವಾ ಎರಡು 8-ಬಿಟ್ ಬೈಟ್ಗಳೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳಬಹುದು. ಸರಿಯಾದ ಎನ್ಕೋಡಿಂಗ್ಗಾಗಿ, ನಮಗೆ ನಿಖರವಾಗಿ ಮೂರು ಬೈಟ್ಗಳು ಬೇಕಾಗುತ್ತವೆ.

3-ಬೈಟ್ ಗುಂಪನ್ನು ರಚಿಸಲು '0' ಮೌಲ್ಯದೊಂದಿಗೆ ಸಾಕಷ್ಟು ಬೈಟ್ಗಳನ್ನು ಸೇರಿಸುವುದು ಈ ಪರಿಹಾರವಾಗಿದೆ. ನಾವು ಒಂದು ಹೆಚ್ಚುವರಿ ಬೈಟ್ ಡೇಟಾವನ್ನು ಹೊಂದಿದ್ದರೆ ಎರಡು ಅಂತಹ ಮೌಲ್ಯಗಳನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆ, ಒಂದನ್ನು ಎರಡು ಹೆಚ್ಚುವರಿ ಬೈಟ್ಗಳಿಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ.

ಸಹಜವಾಗಿ, ಈ ಕೃತಕ ಹಿಂಬಾಲಕ '0'ಗಳನ್ನು ಎನ್ಕೋಡಿಂಗ್ ಟೇಬಲ್ ಕೆಳಗೆ ಎನ್ಕೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಅವರು 65 ನೇ ಅಕ್ಷರದಿಂದ ಪ್ರತಿನಿಧಿಸಲ್ಪಡಬೇಕು.

Base64 ಪ್ಯಾಡಿಂಗ್ ಪಾತ್ರವು '=' ಆಗಿದೆ. ನೈಸರ್ಗಿಕವಾಗಿ, ಅದು ಎನ್ಕೋಡ್ ಮಾಡಿದ ಡೇಟಾದ ಕೊನೆಯಲ್ಲಿ ಮಾತ್ರ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ.

Base64 ಎನ್ಕೋಡಿಂಗ್ ಟೇಬಲ್

ಮೌಲ್ಯ ಚಾರ್ ಮೌಲ್ಯ ಚಾರ್ ಮೌಲ್ಯ ಚಾರ್ ಮೌಲ್ಯ ಚಾರ್
0 16 ಪ್ರಶ್ನೆ 32 ಗ್ರಾಂ 48 w
1 ಬಿ 17 ಆರ್ 33 h 49 X
2 ಸಿ 18 ಎಸ್ 34 ನಾನು 50 y
3 ಡಿ 19 ಟಿ 35 ಜೆ 51 z
4 20 U 36 ಕೆ 52 0
5 ಎಫ್ 21 ವಿ 37 l 53 1
6 ಜಿ 22 W 38 ಮೀ 54 2
7 ಹೆಚ್ 23 X 39 n 55 3
8 ನಾನು 24 ವೈ 40 56 4
9 ಜೆ 25 ಝಡ್ 41 ಪು 57 5
10 ಕೆ 26 a 42 q 58 6
11 ಎಲ್ 27 ಬೌ 43 r 59 7
12 ಎಂ 28 ಸಿ 44 ರು 60 8
13 ಎನ್ 29 d 45 t 61 9
14 30 46 u 62 +
15 ಪಿ 31 f 47 v 63 /