Τι είναι το Base64 και πώς λειτουργεί
Το Base64 είναι ένας τρόπος να παίρνουμε «δύσκολα» δεδομένα –όπως εικόνες, αρχεία ήχου, PDF ή προγράμματα– και να τα μετατρέπουμε σε μια σειρά από απλούς χαρακτήρες κειμένου (γράμματα, αριθμούς και μερικά σύμβολα).
Όταν το αρχείο γίνει κείμενο, μπορεί να μεταφερθεί παντού με ασφάλεια, χωρίς να «χαλάσει» κατά τη μεταφορά από το ένα σύστημα στο άλλο.
Γιατί το λέμε Base64;
Στα μαθηματικά και την πληροφορική, η λέξη «Base» (βάση) δείχνει πόσους μοναδικούς χαρακτήρες χρησιμοποιεί ένα σύστημα για να γράψει δεδομένα.
- Ο υπολογιστής στο πιο βαθύ του επίπεδο καταλαβαίνει μόνο δύο ψηφία, το 0 και το 1 (Δυαδικό σύστημα ή Base2).
- Οι άνθρωποι στην καθημερινότητά μας χρησιμοποιούμε δέκα ψηφία, από το 0 έως το 9 (Δεκαδικό σύστημα ή Base10).
- Το Base64 χρησιμοποιεί ακριβώς 64 χαρακτήρες για να αναπαραστήσει τα δεδομένα.
Αυτοί οι 64 χαρακτήρες επιλέχθηκαν επειδή είναι «κοινοί» και ασφαλείς:
- Τα 26 κεφαλαία γράμματα της αγγλικής αλφαβήτου (A-Z)
- Τα 26 πεζά γράμματα της αγγλικής αλφαβήτου (a-z)
- Τους 10 αριθμούς (0-9)
- Τα σύμβολα συν (+) και κάθετος (/)
Τι σημαίνει το «ίσον» (=) στο τέλος του κειμένου;
Όταν ο υπολογιστής μετατρέπει ένα αρχείο σε Base64, δεν φτιάχνει απλώς μια τυχαία σειρά χαρακτήρων. Είναι υποχρεωμένος να χωρίσει το αποτέλεσμα σε σταθερές τετράδες χαρακτήρων (ομάδες των 4). Κάθε τετράδα Base64 αντιστοιχεί ακριβώς σε 3 bytes του αρχικού αρχείου.
Επειδή όμως τα αρχεία που ανεβάζουμε έχουν διαφορετικά μεγέθη, στο τέλος της μετατροπής μπορεί να μην έχουμε αρκετά δεδομένα για να συμπληρωθεί η τελευταία τετράδα.
- Αν η τελευταία ομάδα έχει και τους 4 χαρακτήρες, το κείμενο τελειώνει κανονικά.
- Αν περισσέψουν δεδομένα που γεμίζουν μόνο 3 θέσεις, ο υπολογιστής βάζει ένα = στο τέλος για να κλείσει η τετράδα.
- Αν τα δεδομένα γεμίζουν μόνο 2 θέσεις, ο υπολογιστής βάζει δύο == στο τέλος.
Το σύμβολο του ίσον, λοιπόν, ονομάζεται «γέμισμα» (padding). Δεν κουβαλάει κάποια πληροφορία του αρχείου, αλλά λειτουργεί σαν «τάπα» που συμπληρώνει το κενό, ώστε το συνολικό κείμενο να έχει το σωστό μήκος και ο επόμενος υπολογιστής να το διαβάσει σωστά.
Είναι το Base64 μορφή κρυπτογράφησης;
Η σύντομη απάντηση είναι: Όχι.
Η κρυπτογράφηση έχει σκοπό να κρύψει ένα μυστικό και απαιτεί ένα «κλειδί» για να ξεκλειδώσει. Το Base64 δεν κρύβει τίποτα. Οποιοσδήποτε στον κόσμο μπορεί να πάρει ένα κείμενο Base64 και να το μετατρέψει πίσω στην αρχική του μορφή μέσα σε ένα δευτερόλεπτο, χρησιμοποιώντας ένα απλό εργαλείο στο ίντερνετ. Το Base64 είναι κωδικοποίηση (μετατροπή μορφής), όχι κρυπτογράφηση.
Πού χρησιμοποιείται το Base64;
Το Base64 βρίσκεται παντού γύρω μας στο ίντερνετ, ακόμα κι αν δεν το βλέπουμε. Οι πιο συχνές του χρήσεις είναι:
- Στα Email: Όταν στέλνετε ένα email με μια φωτογραφία ως συνημμένο, το σύστημα του email (που είναι φτιαγμένο κυρίως για κείμενο) μετατρέπει τη φωτογραφία σε Base64 για να τη στείλει και ο παραλήπτης τη μετατρέπει αυτόματα πάλι σε εικόνα.
- Στην κατασκευή ιστοσελίδων (Web Development): Μερικές φορές οι προγραμματιστές μετατρέπουν μικρά εικονίδια ή λογότυπα σε Base64 και τα βάζουν απευθείας μέσα στον κώδικα της σελίδας (HTML ή CSS). Έτσι, ο browser δεν χρειάζεται να κάνει ξεχωριστή αναζήτηση για να κατεβάσει την εικόνα από τον σέρβερ.
- Μεταφορά δεδομένων (APIs / JSON): Όταν δύο διαφορετικά προγράμματα μιλάνε μεταξύ τους και ανταλλάσσουν πληροφορίες σε μορφή κειμένου, το Base64 είναι ο ευκολότερος τρόπος να στείλουν και αρχεία μέσα σε αυτή την κουβέντα.
Ποια είναι τα μειονεκτήματά του;
Αφού το Base64 είναι τόσο βολικό, γιατί δεν μετατρέπουμε όλα μας τα αρχεία σε αυτό;
Το μεγάλο του μειονέκτημα είναι το μέγεθος. Όταν μετατρέπουμε ένα δυαδικό αρχείο σε κείμενο Base64, το μέγεθος του αρχείου μεγαλώνει κατά περίπου 33%.
Αν δηλαδή έχετε μια εικόνα μεγέθους 3 MB και τη μετατρέψετε σε Base64, το κείμενο που θα προκύψει θα πιάνει χώρο ίσο με περίπου 4 MB. Αυτό σημαίνει ότι για μεγάλα αρχεία (όπως ταινίες ή μεγάλα έγγραφα), η χρήση του Base64 είναι ασύμφορη, γιατί σπαταλάει μνήμη και καθυστερεί τη μεταφορά.
Πώς μπορώ να δοκιμάσω το Base64;
Είναι πολύ εύκολο να πειραματιστείτε. Υπάρχουν εκατοντάδες δωρεάν «Base64 Encoders/Decoders» στο ίντερνετ. Μπορείτε να γράψετε μια λέξη ή να ανεβάσετε μια μικρή φωτογραφία, να δείτε πώς μετατρέπεται σε μια ατέλειωτη σειρά χαρακτήρων και μετά να κάνετε την αντίστροφη διαδικασία για να πάρετε πίσω το αρχικό σας αρχείο.
Το nKode παρέχει ποικιλία εργαλείων που αφορούν το base64 και μπορείτε να δοκιμάσετε ελεύθερα:
κωδικοποίηση κειμένου σε Base64
αποκωδικοποίηση Base64 σε κείμενο


