ਜੇ ਇੰਟਰਨੈਟ ਇੱਕ ਸੂਚਨਾ ਰਾਜ ਮਾਰਗ ਹੈ, ਤਾਂ ਈ ਮੇਲ ਲਈ ਰਸਤਾ ਇੱਕ ਤੰਗ ਖੋਖਲਾ ਹੈ. ਕੇਵਲ ਬਹੁਤ ਛੋਟੇ ਕਾਰਟ ਪਾਸ ਹੋ ਸਕਦੇ ਹਨ
ਈ-ਮੇਲ ਦੀ ਆਵਾਜਾਈ ਪ੍ਰਣਾਲੀ ਸਿਰਫ ਸਾਦੇ ASCII ਪਾਠ ਲਈ ਹੀ ਤਿਆਰ ਕੀਤੀ ਗਈ ਹੈ. ਦੂਜੀਆਂ ਭਾਸ਼ਾਵਾਂ ਜਾਂ ਮਨਮਾਨੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚ ਟੈਕਸਟ ਭੇਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨਾ ਰਾਵਿਨ ਦੇ ਰਾਹੀਂ ਇੱਕ ਟਰੱਕ ਪ੍ਰਾਪਤ ਕਰਨਾ ਦੀ ਤਰ੍ਹਾਂ ਹੈ
ਵੱਡੇ ਟਰੱਕ ਕਿਸਾਨਾਂ ਦੇ ਰਾਹ ਜਾਂਦੇ ਹਨ?
ਫਿਰ ਤੁਸੀਂ ਇੱਕ ਛੋਟੀ ਜਿਹੀ ਕਿਸ਼ਤੀ ਦੁਆਰਾ ਵੱਡੇ ਟਰੱਕ ਨੂੰ ਕਿਵੇਂ ਭੇਜਦੇ ਹੋ? ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਇੱਕ ਸਿਰੇ ਤੇ ਟੁਕੜਿਆਂ 'ਤੇ ਲਿਜਾਣਾ ਹੈ, ਟੁਕੜਿਆਂ ਨੂੰ ਖੱਡਾਂ ਰਾਹੀਂ ਲਿਜਾਉਣਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਟਰੱਕ ਨੂੰ ਦੂਜੇ ਸਿਰੇ' ਤੇ ਟੁਕੜਿਆਂ ਤੋਂ ਮੁੜ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ.
ਉਹੀ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਈਮੇਲ ਰਾਹੀਂ ਫਾਈਲ ਅਟੈਚਮੈਂਟ ਭੇਜਦੇ ਹੋ. ਇਕ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਜੋ ਕਿ ਏਨਕੋਡਿੰਗ ਵਜੋਂ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ ਬਾਈਨਰੀ ਡਾਟਾ ASCII ਟੈਕਸਟ ਵਿੱਚ ਬਦਲ ਜਾਂਦਾ ਹੈ, ਜਿਸਨੂੰ ਬਿਨਾਂ ਸਮੱਸਿਆ ਦੇ ਈਮੇਲ ਵਿੱਚ ਭੇਜਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਪ੍ਰਾਪਤ ਕਰਤਾ ਦੇ ਅਖੀਰ ਤੇ, ਡੇਟਾ ਡੀਕੋਡ ਹੋ ਗਿਆ ਹੈ ਅਤੇ ਅਸਲ ਫਾਈਲ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਇਆ ਗਿਆ ਹੈ.
ਸਾਦਾ ASCII ਪਾਠ ਦੇ ਤੌਰ ਤੇ ਏਨਕੋਡਿੰਗ ਡੇਟਾ ਦੀ ਇੱਕ ਢੰਗ Base64 ਹੈ. ਇਹ ਸਾਦਾ ਟੈਕਸਟ ਤੋਂ ਇਲਾਵਾ ਹੋਰ ਡਾਟਾ ਭੇਜਣ ਲਈ MIME ਸਟੈਂਡਰਡ ਦੁਆਰਾ ਨਿਯੁਕਤ ਤਕਨੀਕਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ.
ਬਚਾਅ ਲਈ Base64
ਬੇਸ 64 ਇੰਕੋਡਿੰਗ ਤਿੰਨ ਬਾਈਟ ਲੈਂਦੀ ਹੈ, ਹਰ ਇੱਕ ਅੱਠ ਬਿੱਟ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਏਸੀਸੀਆਈ ਸਟੈਂਡਰਡ ਵਿੱਚ ਚਾਰ ਪ੍ਰਿੰਟ ਕਰਨ ਯੋਗ ਅੱਖਰਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਪ੍ਰਸਤੁਤ ਕਰਦਾ ਹੈ. ਇਹ ਅਸਲ ਵਿੱਚ ਦੋ ਪੜਾਵਾਂ ਵਿੱਚ ਕਰਦਾ ਹੈ.
ਪਹਿਲਾ ਕਦਮ ਹੈ ਤਿੰਨ ਬਾਈਟਾਂ ਨੂੰ ਛੇ ਬਿੱਟ ਦੇ ਚਾਰ ਨੰਬਰ ਵਿੱਚ ਤਬਦੀਲ ਕਰਨਾ. ASCII ਸਟੈਂਡਰਡ ਵਿਚ ਹਰੇਕ ਪਾਤਰ ਸੱਤ ਬਿੱਟ ਦੇ ਹੁੰਦੇ ਹਨ. ਬੇਸ 64 ਸਿਰਫ 6 ਬਿੱਟ (2 ^ 6 = 64 ਅੱਖਰਾਂ ਦੀ ਅਨੁਸਾਰੀ) ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾ ਸਕੇ ਕਿ ਇੰਕੋਡ ਕੀਤਾ ਡਾਟਾ ਛਪਣਯੋਗ ਅਤੇ ਮਨੁੱਖੀ ਪੜ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਏਐਸਸੀਆਈਆਈ ਵਿੱਚ ਉਪਲਬਧ ਕੋਈ ਵੀ ਵਿਸ਼ੇਸ਼ ਅੱਖਰ ਨਹੀਂ ਵਰਤੇ ਜਾਂਦੇ ਹਨ.
64 ਅੱਖਰ (ਇਸ ਲਈ ਆਧਾਰ6464) 10 ਅੰਕ ਹੁੰਦੇ ਹਨ, 26 ਛੋਟੇ ਅੱਖਰ, 26 ਵੱਡੇ ਅੱਖਰ ਅਤੇ '+' ਅਤੇ '/' ਹੁੰਦੇ ਹਨ.
ਉਦਾਹਰਨ ਲਈ, ਜੇ ਤਿੰਨ ਬਾਈਟ 155, 162 ਅਤੇ 233 ਹਨ, ਤਾਂ ਅਨੁਸਾਰੀ (ਅਤੇ ਡਰਾਉਣੀ) ਬਿੱਟ ਸਟ੍ਰੀਮ 100110111010001011101001 ਹੈ, ਜੋ ਬਦਲੇ ਵਿੱਚ 6-ਬਿੱਟ 38, 58, 11 ਅਤੇ 41 ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ.
ਇਹ ਨੰਬਰ ਨੂੰ ਬੇਸ 64 ਐਨਕੋਡਿੰਗ ਟੇਬਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਦੂਜੇ ਪਗ ਵਿੱਚ ASCII ਅੱਖਰਾਂ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ. ਸਾਡੀ ਉਦਾਹਰਨ ਦੇ 6-ਬਿੱਟ ਮੁੱਲ ASCII ਤਰਤੀਬ "m6 lp" ਵਿੱਚ ਅਨੁਵਾਦ ਕਰਦੇ ਹਨ.
- 155 -> 10011011
- 162 -> 10100010
- 233 -> 11101001
- 100110 -> 38
- 111010 -> 58
- 001011 -> 11
- 101001 -> 41
- 38 -> m
- 58 -> 6
- 11 -> ਐਲ
- 41 -> ਪੀ
ਇਹ ਦੋ-ਪਗ਼ ਦੀ ਪ੍ਰਕਿਰਿਆ ਏਨਕੋਡ ਕੀਤੀ ਗਈ ਸਾਰੀ ਸੰਦਰਭ ਬਾਈਟਾਂ ਤੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ. ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਏਨਕੋਡ ਕੀਤਾ ਡਾਟਾ ਸਹੀ ਢੰਗ ਨਾਲ ਛਾਪਿਆ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਕਿਸੇ ਮੇਲ ਸਰਵਰ ਦੀ ਲਾਈਨ ਲੰਬਾਈ ਸੀਮਾ ਤੋਂ ਵੱਧ ਨਹੀਂ ਹੈ, ਲਾਈਨ ਦੇ ਲੰਬਾਈ ਨੂੰ 76 ਅੱਖਰਾਂ ਤੋਂ ਘੱਟ ਰੱਖਣ ਲਈ ਨਵੇਂ ਅੱਖਰ ਸ਼ਾਮਲ ਕੀਤੇ ਗਏ ਹਨ. ਨਵੇਂ ਅੱਖਰਾਂ ਨੂੰ ਹੋਰ ਸਭ ਡਾਟਾ ਜਿਵੇਂ ਏਨਕੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ.
ਐਂਡਗੈਮ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਇੰਕੋਡਿੰਗ ਦੀ ਪ੍ਰਕਿਰਿਆ ਦੇ ਅੰਤ ਤੇ, ਅਸੀਂ ਇੱਕ ਸਮੱਸਿਆ ਵਿੱਚ ਹੋ ਸਕਦੇ ਹਾਂ. ਜੇ ਬਾਈਟ ਵਿਚਲੇ ਮੂਲ ਡਾਟਾ ਦਾ ਆਕਾਰ ਤਿੰਨ ਗੁਣਾਂ ਬਹੁਪੱਖੀ ਹੈ, ਤਾਂ ਸਾਰਾ ਕੰਮ ਵਧੀਆ ਹੁੰਦਾ ਹੈ. ਜੇ ਇਹ ਨਹੀਂ ਹੈ, ਤਾਂ ਅਸੀਂ ਇੱਕ ਜਾਂ ਦੋ 8-ਬਿੱਟ ਬਾਈਟਾਂ ਨਾਲ ਖਤਮ ਹੋ ਸਕਦੇ ਹਾਂ. ਸਹੀ ਇੰਕੋਡਿੰਗ ਲਈ, ਸਾਨੂੰ ਬਿਲਕੁਲ ਤਿੰਨ ਬਾਈਟ ਦੀ ਜ਼ਰੂਰਤ ਹੈ, ਹਾਲਾਂਕਿ.
ਇੱਕ ਹੱਲ 3 ਬਾਈਟ ਗਰੁੱਪ ਬਣਾਉਣ ਲਈ '0' ਦੇ ਮੁੱਲ ਦੇ ਨਾਲ ਕਾਫ਼ੀ ਬਾਈਟ ਜੋੜਨਾ ਹੈ. ਜੇਕਰ ਸਾਡੇ ਕੋਲ ਡਾਟਾ ਦੇ ਇੱਕ ਵਾਧੂ ਬਾਈਟ ਹੈ ਤਾਂ ਦੋ ਅਜਿਹੇ ਮੁੱਲ ਜੋੜੇ ਗਏ ਹਨ, ਇੱਕ ਨੂੰ ਦੋ ਵਾਧੂ ਬਾਈਟਾਂ ਲਈ ਜੋੜਿਆ ਗਿਆ ਹੈ.
ਬੇਸ਼ਕ, ਹੇਠਲੇ ਏਨਕੋਡਿੰਗ ਟੇਬਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਹ ਨਕਲੀ ਅਨੁਪਾਤ '0' ਨੂੰ ਏਨਕੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ. ਉਹਨਾਂ ਨੂੰ ਇੱਕ 65 ਵੀਂ ਚਰਿੱਤਰ ਦੁਆਰਾ ਪ੍ਰਸਤੁਤ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ
Base64 ਪੈਡਿੰਗ ਵਰਣਨ '=' ਹੈ. ਕੁਦਰਤੀ ਤੌਰ ਤੇ, ਇਹ ਸਿਰਫ਼ ਏਨਕੋਡ ਕੀਤੇ ਡਾਟਾ ਦੇ ਅਖੀਰ 'ਤੇ ਹੀ ਪ੍ਰਗਟ ਹੋ ਸਕਦਾ ਹੈ.
Base64 ਇੰਕੋਡਿੰਗ ਸਾਰਣੀ
ਮੁੱਲ | ਚਾਰ | ਮੁੱਲ | ਚਾਰ | ਮੁੱਲ | ਚਾਰ | ਮੁੱਲ | ਚਾਰ |
---|---|---|---|---|---|---|---|
0 | A | 16 | Q | 32 | g | 48 | w |
1 | ਬੀ | 17 | ਆਰ | 33 | h | 49 | x |
2 | ਸੀ | 18 | ਐਸ | 34 | i | 50 | y |
3 | ਡੀ | 19 | ਟੀ | 35 | j | 51 | z |
4 | ਈ | 20 | ਯੂ | 36 | k | 52 | 0 |
5 | F | 21 | ਵੀ | 37 | l | 53 | 1 |
6 | ਜੀ | 22 | ਡਬਲਯੂ | 38 | ਮੀ | 54 | 2 |
7 | H | 23 | X | 39 | n | 55 | 3 |
8 | ਮੈਂ | 24 | ਵਾਈ | 40 | o | 56 | 4 |
9 | ਜੇ | 25 | Z | 41 | ਪੀ | 57 | 5 |
10 | ਕੇ | 26 | ਏ | 42 | q | 58 | 6 |
11 | L | 27 | b | 43 | r | 59 | 7 |
12 | ਐਮ | 28 | ਸੀ | 44 | s | 60 | 8 |
13 | N | 29 | ਡੀ | 45 | t | 61 | 9 |
14 | ਓ | 30 | ਈ | 46 | u | 62 | + |
15 | ਪੀ | 31 | f | 47 | v | 63 | / |