Skip to main content

Πώς λειτουργεί η κωδικοποίηση Base64

SPSS v21 Video Tutorial (οδηγός χρήσης) στα ελληνικά (Ιούνιος 2025)

SPSS v21 Video Tutorial (οδηγός χρήσης) στα ελληνικά (Ιούνιος 2025)
Anonim

Εάν το διαδίκτυο είναι ο αυτοκινητόδρομος πληροφοριών, τότε η διαδρομή για το ηλεκτρονικό ταχυδρομείο είναι μια στενή ρεματιά. Μόνο πολύ μικρά καροτσάκια μπορούν να περάσουν.

Το σύστημα μεταφοράς ηλεκτρονικού ταχυδρομείου έχει σχεδιαστεί μόνο για απλό κείμενο ASCII. Προσπαθώντας να στείλετε κείμενο σε άλλες γλώσσες ή αυθαίρετα αρχεία είναι σαν να πετάξετε ένα φορτηγό μέσα από τη χαράδρα.

Πώς περνάει το μεγάλο φορτηγό μέσα από το ρέμα;

Τότε πώς στέλνετε ένα μεγάλο φορτηγό μέσα από μια μικρή ρεματιά; Πρέπει να το παίρνετε κομμάτια στο ένα άκρο, να μεταφέρετε τα κομμάτια μέσα από τη χαράδρα και να ανοικοδομήσετε το φορτηγό από τα κομμάτια στο άλλο άκρο.

Το ίδιο συμβαίνει όταν στέλνετε ένα συνημμένο αρχείο μέσω ηλεκτρονικού ταχυδρομείου. Σε μια διαδικασία που είναι γνωστή ως κωδικοποίηση των δυαδικών δεδομένων, μετατρέπεται σε κείμενο ASCII, το οποίο μπορεί να μεταφερθεί στο ηλεκτρονικό ταχυδρομείο χωρίς προβλήματα. Στο τέλος του παραλήπτη, τα δεδομένα αποκωδικοποιούνται και το αρχικό αρχείο ανοικοδομείται.

Μία μέθοδος κωδικοποίησης αυθαίρετων δεδομένων ως απλού ASCII κειμένου είναι το Base64. Είναι μία από τις τεχνικές που χρησιμοποιεί το πρότυπο MIME για την αποστολή δεδομένων πέραν του απλού κειμένου.

Base64 στη διάσωση

Η κωδικοποίηση Base64 διαρκεί τρία byte, ο καθένας από τα οποία αποτελείται από οκτώ bits, και τα αντιπροσωπεύει ως τέσσερις εκτυπώσιμους χαρακτήρες στο πρότυπο ASCII. Το κάνει αυτό ουσιαστικά σε δύο βήματα.

Το πρώτο βήμα είναι να μετατρέψετε τρία byte σε τέσσερις αριθμούς έξι bits. Κάθε χαρακτήρας στο πρότυπο ASCII αποτελείται από επτά bits. Το Base64 χρησιμοποιεί μόνο 6 bits (αντιστοιχεί σε 2 ^ 6 = 64 χαρακτήρες) για να διασφαλίσει ότι τα κωδικοποιημένα δεδομένα είναι εκτυπώσιμα και μπορούν να διαβαστούν από άνθρωπο. Δεν χρησιμοποιείται κανένας από τους ειδικούς χαρακτήρες που είναι διαθέσιμοι στο ASCII.

Οι 64 χαρακτήρες (εξ ου και το όνομα Base64) είναι 10 ψηφία, 26 πεζά χαρακτήρες, 26 κεφαλαίοι χαρακτήρες καθώς και '+' και '/'.

Εάν, για παράδειγμα, τα τρία byte είναι 155, 162 και 233, το αντίστοιχο (και τρομακτικό) ρεύμα δυαδικών ψηφίων είναι 100110111010001011101001, το οποίο με τη σειρά του αντιστοιχεί στις τιμές των 6-bit 38, 58, 11 και 41.

Αυτοί οι αριθμοί μετατρέπονται σε χαρακτήρες ASCII στο δεύτερο βήμα χρησιμοποιώντας τον πίνακα κωδικοποίησης Base64. Οι τιμές 6-bit του παραδείγματος μας μεταφράζονται στην ακολουθία ASCII "m6Lp".

  • 155 -> 10011011
  • 162 -> 10100010
  • 233 -> 11101001
  • 100110 -> 38
  • 111010 -> 58
  • 001011 -> 11
  • 101001 -> 41
  • 38 -> m
  • 58 -> 6
  • 11 -> L
  • 41 -> σελ

Αυτή η διαδικασία δύο σταδίων εφαρμόζεται σε ολόκληρη την ακολουθία των ψηφιολέξεων που κωδικοποιούνται. Για να διασφαλιστεί ότι τα κωδικοποιημένα δεδομένα μπορούν να εκτυπωθούν σωστά και δεν υπερβαίνει το όριο μήκους γραμμής του διακομιστή αλληλογραφίας, εισάγονται χαρακτήρες γραμμής νέας γραμμής για να διατηρούνται τα μήκη γραμμών κάτω από 76 χαρακτήρες. Οι χαρακτήρες νέας γραμμής κωδικοποιούνται όπως όλα τα άλλα δεδομένα.

Επίλυση του Endgame

Στο τέλος της διαδικασίας κωδικοποίησης, ενδέχεται να αντιμετωπίσουμε πρόβλημα. Αν το μέγεθος των αρχικών δεδομένων σε bytes είναι πολλαπλάσιο των τριών, όλα λειτουργούν καλά. Αν δεν συμβαίνει, ίσως καταλήξουμε σε ένα ή δύο byte 8-bit. Για την σωστή κωδικοποίηση χρειάζονται ακριβώς τρία bytes, ωστόσο.

Η λύση είναι να προσαρτήσετε αρκετά byte με τιμή «0» για να δημιουργήσετε μια ομάδα 3 byte. Δύο τέτοιες τιμές επισυνάπτονται εάν έχουμε ένα επιπλέον byte δεδομένων, το ένα προσαρτάται για δύο επιπλέον byte.

Φυσικά, αυτά τα τεχνητά τελικά '0 δεν μπορούν να κωδικοποιηθούν χρησιμοποιώντας τον παρακάτω πίνακα κωδικοποίησης. Πρέπει να αντιπροσωπεύονται από ένα 65ο χαρακτήρα.

Ο χαρακτήρας βάσης Base64 είναι '='. Φυσικά, μπορεί να εμφανιστεί μόνο στο τέλος των κωδικοποιημένων δεδομένων.

Πίνακας κωδικοποίησης Base64

αξίαΑπανθρακώνω αξίαΑπανθρακώνω αξίαΑπανθρακώνω αξίαΑπανθρακώνω
0ΕΝΑ 16Q 32σολ 48w
1σι 17R 33h 49Χ
2ντο 18μικρό 34Εγώ 50y
3ρε 19Τ 35j 51z
4μι 20U 36κ 520
5φά 21V 37μεγάλο 531
6σολ 22W 38m 542
7H 23Χ 39n 553
8Εγώ 24Y 40o 564
9J 25Ζ 41Π 575
10κ 26ένα 42q 586
11μεγάλο 27σι 43r 597
12Μ 28ντο 44μικρό 608
13Ν 29ρε 45t 619
14Ο 30μι 46u 62+
15Π 31φά 47v 63/