Κωδικοποίηση ή αποκωδικοποίηση σε base64

dimitris | Δευ, 07/28/2014 - 12:17 | 7'

Θέλετε να κωδικοποιήσετε ένα μήνυμα ή ένα αρχείο σε κάποια μορφή όχι και τόσο ευανάγνωστη για "ξένα μάτια"; Εχετε λάβει ένα email με συνημμένα αρχεία και θέλετε να το ανοίξετε από τη γραμμή εντολών και να δείτε τα συνημμένα αρχεία; Και τα δύο γίνονται στο Linux με την εντολή base64.

Το base64 είναι ένα προγραμματάκι, μέρος του πακέτου coreutils σε Debian/Ubuntu, το οποίο κωδικοποιεί ή αποκωδικοποιεί binary δεδομένα (π.χ. εικόνες) μεταφράζοντας τα σε κείμενο ASCII αλλά σε radix-64 αναπαράσταση. Να πως γίνεται η κωδικοποίηση με απλά λόγια:

Κάθε αρχικό γράμμα ή σύμβολο αντιστοιχίζεται στον ASCII κωδικό του, που με τη σειρά του αντιστοιχίζεται στο δυαδικό του αντίστοιχο 8μπιτο αριθμό και τέλος, συνεχόμενες τριάδες τέτοιων 8-μπιτων αριθμών δημιουργούν ένα 24μπιτο αριθμό ο οποίος σπάει σε 4 εξάδες (6-bit) από αριστερά προς τα δεξιά. Κάθε μια εξάδα αντιστοιχεί σε έναν από τους 2^6 = 64 δυνατούς αριθμούς ο οποίος τέλος μεταφράζεται σε ένα από τα 64 σύμβολα του Base64 (συνήθως a-z, A-Z, 0-9, +, = και /).

ΟΚ, μετά από αυτή τη σύντομη μα και ανιαρή μαθηματική εξήγηση ας δούμε πως δουλεύει. Δίνουμε την εντολή base64 στο τερματικό και γράφουμε ότι μήνυμα θέλουμε. Μετά πατάμε  Ctrl+D για να πάρουμε το κωδικοποιημένο μήνυμα:

dimitris@work:~$ base64
linuxinsider.gr is nice
bGludXhpbnNpZGUuZ3IgaXMgbmljZQo=

Το bGludXhpbnNpZGUuZ3IgaXMgbmljZQo= είναι το κωδικοποιημένο μας μήνυμα. Το στέλνουμε σε κάποιον άλλον ο οποίος το αποκωδικοποιεί και το διαβάζει ως εξής:

dimitris@work:~$ base64 -d
bGludXhpbnNpZGUuZ3IgaXMgbmljZQo=
linuxinsider.gr is nice

Το ωραίο είναι ότι μπορούμε να κωδικοποιήσουμε ολόκληρο αρχείο ως εξής:

dimitris@work:~$  base64 test.txt > test.base64

Το παραγόμενο αρχείο test.base64 θα είναι σε ascii μορφή. Παρόμοια για μια εικόνα:

dimitris@work:~$ base64 linuxinside-logo.png > linuxinside.base64

To αρχείο linuxinside.base64 περιέχει τώρα τα εξής:

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

Αν αντιγράψατε όλο αυτό το κατεβατό σε ένα αρχείο txt (π.χ. test.txt) στον υπολογιστή σας, μπορείτε να το αποκωδικοποιήσετε με την εντολή: base64 -d test.txt > linuxinside-logo.png Και θα δείτε ότι η νέα εικόνα linuxinside-logo.png που θα δημιουργηθεί στον ίδιο φάκελο θα είναι ιδια ακριβώς με το λογότυπο του linuxinsider.gr.... Καλό; Αν δεν το γνωρίζετε (αλλά πρέπει να μάθετε αφού διαβάζετε το Linuxinsider.gr), το base64 είναι ο εξορισμού τρόπος μεταφοράς αρχείων μέσω email. Μάλιστα. Για διάφορους λόγους, όταν στέλνουμε ένα συνημμένο αρχείο σε κάποιον παραλήπτη, δεν στέλνουμε ποτέ το ίδιο το αρχείο ή κάποιο αντίγραφό του αλλά στην πραγματικότητα ο mail client που χρησιμοποιούμε μετατρέπει το αρχείο σε base64 ascii μορφή (όπως το παραπάνω μακρυνάρι) και έπειτα το στέλνει αυτούσιο μέσα στο email μας μαζί με χρήσιμες επικεφαλίδες της μορφής:

Content-Type: image/jpeg; name="filefoo.jpg"
Content-Description: filefoo.jpg
Content-Disposition: attachment; filename="filefoo.jpg"; size=46015;
	creation-date="Tue, 15 Jul 2014 11:13:40 GMT";
	modification-date="Tue, 15 Jul 2014 11:13:40 GMT"
Content-Transfer-Encoding: base64

και έπειτα ακολουθεί το... base64 μακρυνάρι με το αρχείο μας:

XuqTGXZJ33wg2TTx63gakGsB/HIEPDnOLQe6pLhg4jesNwDgtR/i0Xqv0kWE4F4pPPEVpRpr5m3n
8qkL3FmS5L9vWiLOB9EpRDgbwFeHDSS1/h+kk3qGwYn+NodT4TZxhWvnglSCyNU4xcfwxYBQMoMH
LhiLFfrYcjJp5aSQLkiDxw+544qYGS+88ALefvvtcvZDQ0TAqWgPSacfIra3d0HhQu4qmASMPCjV
k4Idbr0Pwzh8YLiMGfFJ38A6ALhgIayNS9BJhKNBe5Vk+XsA84gQVICnNi4VqyTojjdfclZc8DDk
AeWoNMsQM+IuRAAwfQEyG5fyaoBO20uFn156642oSn5TlRFHDBw+rIokLE047NCAEHK19ofrXglA
iGI7iZT+NpMSZPjqCMdmtuEvna/gz68rOG3mzPIYosH5dW5I3A2HZzIZrFixopwBIYTAuNYwiA2A
uKiWdkWgoQIulAIkbqDEDYNLCzA1QjouuK/XQ5D2lYMimCNj8nhCfGBFY3sPElEGWDLjXFsXUxxi
....
....
zCOCQqCTFeB3H5khXvnbyfL84/4NWw/ggyNcCl7Fq9TwXtBeX093Xj2bge5dj2HvBUiQuh9sqhUn
2d9PI/vdp/LBHUCW3DuWJZgEILylKF7QwUVju7FqUwS/ePBBRCMRjB8/HuPGjSuv4ieEQKFQKC9v
2d7ejkwmM2CySFVVccZHm2AWeqD4+svlqqQslZFKjjCL/ovjtqUsjZBOCO7r88g1Cc+Z85aufVEI
eKWEM+gRcYA5Ymu49zl9IXTAuerdpVissHIdCFcQECCij4VI3AvIOQdOkZADECOgoUr9bthrUIEM
AQ3MSLd93RmzX8LfYDNCtqGyWgGp+5yWA0Ph7pmy0w8
Φόρουμ
Δώσε αστέρια!

MO: 5 (ψήφοι: 2)