ຖ້າອິນເຕີເນັດແມ່ນເສັ້ນທາງຂໍ້ມູນ, ຫຼັງຈາກນັ້ນເສັ້ນທາງສໍາລັບອີເມລ໌ແມ່ນຂົວແຄບ. ພຽງແຕ່ລົດເຂັນທີ່ມີຂະຫນາດນ້ອຍໆສາມາດຜ່ານໄດ້.
ລະບົບການຂົນສົ່ງຂອງອີເມລ໌ແມ່ນອອກແບບສໍາລັບຂໍ້ຄວາມ ASCII ທົ່ງພຽງເທົ່ານັ້ນ. ການພະຍາຍາມທີ່ຈະສົ່ງຂໍ້ຄວາມໃນພາສາອື່ນຫຼືໄຟລ໌ທີ່ເປັນທາງເລືອກແມ່ນຄ້າຍຄືກັບລົດທີ່ຜ່ານທາງຮ່ອມພູ.
ລົດໃຫຍ່ໃຫຍ່ຈະໄປຜ່ານ Ravine ໄດ້ແນວໃດ?
ຫຼັງຈາກນັ້ນ, ວິທີທີ່ທ່ານສົ່ງລົດໃຫຍ່ໂດຍຜ່ານ ravine ຂະຫນາດນ້ອຍ? ທ່ານຕ້ອງໃຊ້ເວລາມັນໃນສິ້ນສຸດ, ການຂົນສົ່ງຕ່ອນຜ່ານ ravine ໄດ້, ແລະການກໍ່ສ້າງລົດຈາກຕ່ອນໃນອີກດ້ານຫນຶ່ງ.
ການເກີດຂື້ນໃນເວລາທີ່ທ່ານສົ່ງ ເອກະສານໄຟລ໌ແນບຜ່ານອີເມວ . ໃນຂະບວນການທີ່ເອີ້ນວ່າການເຂົ້າລະຫັດຂໍ້ມູນລະບົບປະຕິບັດການຖືກປ່ຽນເປັນຂໍ້ຄວາມ ASCII ຊຶ່ງສາມາດຖືກສົ່ງຜ່ານອີເມວໂດຍບໍ່ມີບັນຫາ. ໃນຂໍ້ສຸດທ້າຍຂອງຜູ້ຮັບ, ຂໍ້ມູນຈະຖືກຖອດອອກແລະໄຟລ໌ຕົ້ນສະບັບຖືກສ້າງຂຶ້ນໃຫມ່.
ຫນຶ່ງໃນວິທີການເຂົ້າລະຫັດຂໍ້ມູນທີ່ເປັນຕົວຕົນເປັນຂໍ້ຄວາມ ASCII ທໍາມະດາແມ່ນ Base64. ມັນແມ່ນຫນຶ່ງໃນເຕັກນິກທີ່ເຮັດວຽກໂດຍ ມາດຕະຖານ MIME ເພື່ອສົ່ງຂໍ້ມູນອື່ນນອກເຫນືອຈາກ ຂໍ້ຄວາມທໍາມະດາ .
Base64 ກັບການກູ້ໄພ
ການເຂົ້າລະຫັດ Base64 ໃຊ້ເວລາສາມ bytes, ແຕ່ລະປະກອບດ້ວຍແປດບິດ, ແລະສະແດງໃຫ້ພວກເຂົາເປັນສີ່ຕົວອັກສອນທີ່ພິມໄດ້ໃນມາດຕະຖານ ASCII. ມັນເຮັດໃນສອງຂັ້ນຕອນ.
ຂັ້ນຕອນທໍາອິດແມ່ນການປ່ຽນສາມ bytes ໃຫ້ສີ່ຈໍານວນ 6 ບິດ. ແຕ່ລະຕົວອັກສອນໃນມາດຕະຖານ ASCII ປະກອບດ້ວຍເຈັດບິດ. Base64 ໃຊ້ 6 ບິດ (ເທົ່າກັບ 2 6 = 64 ຕົວອັກສອນ) ເພື່ອໃຫ້ຂໍ້ມູນທີ່ຖືກເຂົ້າລະຫັດສາມາດພິມໄດ້ແລະສາມາດອ່ານໄດ້ກັບມະນຸດ. ບໍ່ມີຕົວອັກສອນພິເສດທີ່ມີຢູ່ໃນ ASCII.
ຕົວອັກສອນ 64 ຕົວ (ດັ່ງນັ້ນ Base64 ຊື່) ມີ 10 ຕົວເລກ, 26 ຕົວອັກສອນຕົວນ້ອຍ, 26 ຕົວອັກສອນຕົວອັກສອນລວມທັງ '+' ແລະ '/'.
ຖ້າຕົວຢ່າງ, ສາມ bytes ແມ່ນ 155, 162 ແລະ 233, ນ້ໍາບິດທີ່ສອດຄ້ອງກັນ (ແລະຢ້ານກົວ) ແມ່ນ 100110111010001011101001, ເຊິ່ງກົງກັນຂ້າມກັບ 6 ບິດ 38, 58, 11 ແລະ 41.
ຕົວເລກເຫລົ່ານີ້ຖືກປ່ຽນເປັນຕົວອັກສອນ ASCII ໃນຂັ້ນຕອນທີສອງໂດຍໃຊ້ຕາຕະລາງການເຂົ້າລະຫັດ Base64. ມູນຄ່າ 6 ບິດຂອງຕົວຢ່າງຂອງພວກເຮົາແປເປັນລໍາດັບ ASCII "m6Lp".
- 155-> 10011011
- 162-> 10100010
- 233-> 11101001
- 100110-> 38
- 111010-> 58
- 001011-> 11
- 101001-> 41
- 38 -> m
- 58 -> 6
- 11 -> L
- 41-> p
ຂັ້ນຕອນສອງຂັ້ນຕອນນີ້ຖືກນໍາໃຊ້ກັບລໍາດັບຂອງ bytes ທັງຫມົດທີ່ຖືກ encoded. ເພື່ອໃຫ້ແນ່ໃຈວ່າຂໍ້ມູນທີ່ຖືກເຂົ້າລະຫັດສາມາດຖືກພິມຢ່າງຖືກຕ້ອງແລະບໍ່ເກີນຂອບເຂດເສັ້ນຍາວຂອງເຄື່ອງແມ່ຂ່າຍເມລ, ຕົວອັກສອນໃຫມ່ຈະຖືກໃສ່ເພື່ອຮັກສາຄວາມຍາວຂອງເສັ້ນຂ້າງລຸ່ມ 76 ຕົວ. ຕົວອັກສອນໃຫມ່ໄດ້ຖືກເຂົ້າລະຫັດເຊັ່ນຂໍ້ມູນອື່ນໆທັງຫມົດ.
ການແກ້ໄຂ Endgame
ໃນຕອນທ້າຍຂອງຂະບວນການເຂົ້າລະຫັດ, ພວກເຮົາອາດຈະເປັນບັນຫາ. ຖ້າຂະຫນາດຂອງຂໍ້ມູນຕົ້ນສະບັບໃນ bytes ແມ່ນຫຼາຍຂອງສາມ, ທຸກສິ່ງທຸກຢ່າງເຮັດວຽກດີ. ຖ້າບໍ່ແມ່ນ, ພວກເຮົາອາດຈະສິ້ນສຸດດ້ວຍຫນຶ່ງຫຼືສອງໄບ 8 ບິດ. ສໍາລັບການເຂົ້າລະຫັດທີ່ເຫມາະສົມ, ພວກເຮົາຕ້ອງການຢ່າງແທ້ຈິງສາມ bytes, ຢ່າງໃດກໍຕາມ.
ການແກ້ໄຂແມ່ນເພື່ອປ້ອນລົງ bytes ທີ່ມີມູນຄ່າຂອງ '0' ເພື່ອສ້າງກຸ່ມ 3 byte. ສອງມູນຄ່າດັ່ງກ່າວແມ່ນເພີ່ມເຕີມຖ້າພວກເຮົາມີຫນຶ່ງໄບຕ໌ເພີ່ມເຕີມຂອງຂໍ້ມູນ, ຫນຶ່ງແມ່ນເພີ່ມເຕີມສໍາລັບສອງ bytes ພິເສດ.
ແນ່ນອນ, ເຫຼົ່ານີ້ trailing ປອມ '0' ບໍ່ສາມາດໄດ້ຮັບການ encoded ໂດຍນໍາໃຊ້ຕາຕະລາງການເຂົ້າລະຫັດຂ້າງລຸ່ມນີ້. ພວກເຂົາຕ້ອງໄດ້ຮັບການສະແດງໂດຍລັກສະນະທີ່ 65.
ຕົວອັກສອນ padding Base64 ແມ່ນ '='. ຕາມທໍາມະດາ, ມັນສາມາດປາກົດຢູ່ໃນຕອນທ້າຍຂອງຂໍ້ມູນທີ່ຖືກເຂົ້າລະຫັດເທົ່ານັ້ນ.
Base64 Encoding Table
ມູນຄ່າ | Char | ມູນຄ່າ | Char | ມູນຄ່າ | Char | ມູນຄ່າ | Char |
---|---|---|---|---|---|---|---|
0 | A | 16 | Q | 32 | g | 48 | w |
1 | B | 17 | R | 33 | h | 49 | x |
2 | C | 18 | S | 34 | i | 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 | a | 42 | q | 58 | 6 |
11 | L | 27 | b | 43 | r | 59 | 7 |
12 | M | 28 | c | 44 | s | 60 | 8 |
13 | N | 29 | d | 45 | t | 61 | 9 |
14 | O | 30 | e | 46 | u | 62 | + |
15 | P | 31 | f | 47 | v | 63 | / |