Base64

Το base64 είναι ομάδα ομοειδών κωδικοποιήσεων ψηφιακών δεδομένων σε κείμενο. Η κωδικοποίηση αυτή αντιστοιχεί τα μπάιτ ενός αρχείου σε ένα υποσύνολο του ASCII που αποτελείται μόνο από εκτυπώσιμους χαρακτήρες. Κάθε «ψηφίο» ενός κειμένου, κωδικοποιημένου με Base64, αντιστοιχεί σε 6 δυαδικά ψηφία των δυαδικών δεδομένων και επομένως η κωδικοποίηση ενός μπάιτ απαιτεί τουλάχιστον 2 «ψηφία». Πάντα κωδικοποιούνται τρία συνεχόμενα μπάιτ, δηλαδή τα τρία μπάιτ, που αποτελούνται από 8 μπιτ (σύνολο 24 μπιτ), μετατρέπονται σε 4 συνεχόμενα «ψηφία» του συστήματος Base64.

Χρήση 
Η μετατροπή σε κωδικοποίηση base64 χρησιμοποιείται ευρέως (αν και πολλές φορές αδιαφανώς) στην ηλεκτρονική αλληλογραφία. Τα επισυναπτόμενα κωδικοποιούνται ως base64 και το πρόγραμμα που τρέχει στον υπολογιστή σας ή στον πάροχο web mail που χρησιμοποιείτε (gmail, yahoo κλπ.) τα μετατρέπει σε ψηφιακά αρχεία. Μπορείτε να δείτε το κείμενο αν επιλέξετε εμφάνιση πηγαίου μηνύματος (ή κάποια αντίστοιχη επιλογή στο πρόγραμμα ηλεκτρονικής αλληλογραφίας που χρησιμοποιείτε).

Χρησιμοποιείται επίσης ευρέως στην αποθήκευση και μετάδοση πιστοποιητικών και δημόσιων κλειδιών

Το κωδικοποιημένο σε base64 αντικείμενο συνήθως περιλαμβάνεται ανάμεσα σε δύο γραμμές που διευκρινίζουν τη χρήση του.

Μετατροπή σε Base64 
Στοιχειώδης πίνακας αντιστοίχισης Base64:

Για πρακτικούς λόγους η μετατροπή γίνεται πάντα με μετατροπή ομάδων τριών συνεχόμενων μπάιτ σε 4 «ψηφία» του συστήματος base64. 
Έτσι η μετατροπή ενός αρχείου τριών μπάιτ π.χ. 0x3e, 0x0b, 0x70 γίνεται παίρνοντας τα δυαδικά ψηφία των τριών μπάιτ σε ομάδες των 6 δυαδικών ψηφίων, που θα μας δώσουν 4 δυαδικούς αριθμούς, τους οποίους θα χρησιμοποιήσουμε σαν δείκτες για να βρούμε τα κωδικοποιημένα «ψηφία»:

Επομένως το κωδικοποιημένο πλέον κείμενο είναι το: Pgtw

Όπως είναι προφανές επιλέγοντας ομάδες των τριών μπάιτ στο τέλος μπορεί να περισσέψουν ένα ή δύο (ή κανένα) μπάιτ. Τότε υποδεικνύουμε αυτό το υπόλοιπο χρησιμοποιώντας τον χαρακτήρα = (ίσον) στο τελικό κωδικοποιημένο κείμενο. Αν στο τέλος έχει μείνει μόνο ένα μπάιτ προσθέτουμε στο κωδικωποιημένο κείμενο 2 ίσον (==) ενώ αν έχουν μείνει δύο προσθέτουμε (πάντα στο κωδικοποιήμενο ήδη κείμενο) ένα ίσον.

Αν το προηγούμενο αρχείο αποτελούνταν από 4 μπάιτ π.χ. 0x3e, 0x0b, 0x70, 0x2d 

Επομένως η κωδικοποίηση μας δίνει: PgtwLQ
 
Για να υποδείξουμε στον αποκωδικοποιητή ότι στο τέλος δεν υπήρχε τριάδα, αλλά μόνο ένα μπάιτ, προσθέτουμε δύο ίσον (==) δημιουργώντας έτσι το κωδικοποιημένο κείμενο: PgtwLQ==.

Διαφορές στην υλοποίηση

Παραπομπές 

Κωδικοποίηση χαρακτήρων