Μετάβαση στο περιεχόμενο

Κωδικοποιητής/Αποκωδικοποιητής Base64 - Δωρεάν Online Εργαλείο Μετατροπής Base64

Δωρεάν εργαλείο κωδικοποίησης και αποκωδικοποίησης base64. Μετατρέψτε κείμενο σε Base64 ή αποκωδικοποιήστε συμβολοσειρές Base64 άμεσα. Υποστηρίζει τυπική και URL-ασφαλή κωδικοποίηση. Δεν απαιτείται σύνδεση.

Κωδικοποιητής/Αποκωδικοποιητής Base64

Μετατροπή κειμένου προς και από κωδικοποίηση Base64

Υπολογιστής φόρτωσης...
📚

Τεκμηρίωση

Τι είναι η κωδικοποίηση Base64;

Το Base64 είναι ένας τρόπος μετατροπής οποιωνδήποτε δεδομένων, συμπεριλαμβανομένων δυαδικών δεδομένων όπως οι εικόνες, σε απλό κείμενο που αποτελείται μόνο από γράμματα, ψηφία και λίγα σύμβολα. Ένας κωδικοποιητής base64 μετατρέπει τα δεδομένα σε αυτή τη μορφή κειμένου. Ένας αποκωδικοποιητής base64 τα επαναφέρει στα αρχικά δεδομένα. Τα προγράμματα χρησιμοποιούν το Base64 για την ασφαλή μεταφορά δυαδικών δεδομένων μέσω συστημάτων, όπως το ηλεκτρονικό ταχυδρομείο ή το JSON, που απαιτούν απλό κείμενο.

Το Base64 χρησιμοποιεί ένα αλφάβητο 64 χαρακτήρων:

  • Κεφαλαία γράμματα A–Z (26 χαρακτήρες)
  • Πεζά γράμματα a–z (26 χαρακτήρες)
  • Ψηφία 0–9 (10 χαρακτήρες)
  • Δύο σύμβολα, συνήθως τα + και / (2 χαρακτήρες)

Ορισμένα συστήματα χρησιμοποιούν επίσης το σύμβολο ίσον (=) στο τέλος της εξόδου ως συμπλήρωση. Η συμπλήρωση δεν αποτελεί μέρος του αλφαβήτου των 64 χαρακτήρων· απλώς συμπληρώνει το μήκος.

Γιατί υπάρχει το Base64

Πολλά παλαιότερα πρωτόκολλα κειμένου, συμπεριλαμβανομένου του ηλεκτρονικού ταχυδρομείου (SMTP) και ορισμένων τμημάτων του HTTP, σχεδιάστηκαν για τη μεταφορά κειμένου ASCII 7 bit. Μπορούν να αλλοιώσουν ακατέργαστα δυαδικά byte, όπως τα byte στο εσωτερικό μιας εικόνας JPEG. Το Base64 το αποφεύγει αυτό αναπαριστώντας κάθε byte μόνο με ασφαλείς, εκτυπώσιμους χαρακτήρες. Γι’ αυτό τα συνημμένα ηλεκτρονικού ταχυδρομείου, οι εικόνες που ενσωματώνονται σε ιστοσελίδες και τα δυαδικά πεδία μέσα σε JSON περνούν συνήθως πρώτα από Base64.

Το Base64 δεν είναι ούτε συμπίεση ούτε κρυπτογράφηση. Η κωδικοποιημένη έξοδος είναι πάντα μεγαλύτερη από την είσοδο και οποιοσδήποτε μπορεί να την αποκωδικοποιήσει χωρίς κωδικό πρόσβασης ή κλειδί.

Πώς χρησιμοποιείται αυτό το εργαλείο

  1. Πληκτρολογήστε ή επικολλήστε κείμενο στο πεδίο εισόδου.
  2. Επιλέξτε «Κωδικοποίηση σε Base64» για να μετατρέψετε το κείμενο σε Base64 ή «Αποκωδικοποίηση από Base64» για να μετατρέψετε μια συμβολοσειρά Base64 ξανά σε κείμενο.
  3. Ενεργοποιήστε τη ζωντανή μετατροπή, ώστε η έξοδος να ενημερώνεται αυτόματα κατά την πληκτρολόγηση.
  4. Αντιγράψτε το αποτέλεσμα με το κουμπί αντιγραφής.

Το εργαλείο διαβάζει και γράφει τυπικό κείμενο Unicode, επομένως τα τονισμένα γράμματα, τα σύμβολα και τα emoji κωδικοποιούνται και αποκωδικοποιούνται σωστά, όχι μόνο τα απλά αγγλικά γράμματα.

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

Το Base64 μετατρέπει κάθε 3 byte εισόδου (24 bit) σε 4 χαρακτήρες εξόδου (καθένας από τους οποίους περιέχει 6 bit), επειδή τα 24 διαιρούμενα με 6 ισούνται με 4.

  1. Πάρτε τα byte εισόδου και γράψτε τα σε δυαδική μορφή.
  2. Ομαδοποιήστε τα bit σε τμήματα των 24 bit (3 byte).
  3. Χωρίστε κάθε τμήμα 24 bit σε τέσσερα κομμάτια των 6 bit.
  4. Αναζητήστε κάθε αριθμό 6 bit (από 0 έως 63) στο αλφάβητο Base64 και καταγράψτε τον αντίστοιχο χαρακτήρα.

Αν το μήκος της εισόδου δεν είναι πολλαπλάσιο του 3, το τελευταίο τμήμα είναι μικρότερο. Ο κωδικοποιητής το συμπληρώνει με μηδενικά bit και στη συνέχεια προσθέτει χαρακτήρες = στην έξοδο, ώστε το αποτέλεσμα να εξακολουθεί να εμφανίζεται σε ομάδες των 4:

  • Ένα byte που περισσεύει παράγει 2 χαρακτήρες Base64 συν ==.
  • Δύο byte που περισσεύουν παράγουν 3 χαρακτήρες Base64 συν ένα =.

Παράδειγμα κωδικοποίησης Base64

Κωδικοποίηση της λέξης «Hello»:

  1. Τιμές ASCII: 72, 101, 108, 108, 111
  2. Δυαδική μορφή: 01001000 01100101 01101100 01101100 01101111
  3. Τα πρώτα 3 byte (24 bit) χωρίζονται σε τέσσερις ομάδες των 6 bit: 010010 000110 010101 101100, οι οποίες είναι οι αριθμοί 18, 6, 21, 44 → χαρακτήρες S, G, V, s.
  4. Τα υπόλοιπα 2 byte (16 bit) χωρίζονται σε τρεις ομάδες των 6 bit, με την προσθήκη 2 μηδενικών bit στο τέλος: 011011 000110 111100, οι οποίες είναι οι αριθμοί 27, 6, 60 → χαρακτήρες b, G, 8.
  5. Επειδή περίσσεψαν 2 byte, προστίθεται ένα = στο τέλος.
  6. Αποτέλεσμα: SGVsbG8=

Η αποκωδικοποίηση αντιστρέφει αυτά τα βήματα: κάθε χαρακτήρας αντιστοιχίζεται ξανά στον αριθμό του των 6 bit, τα bit ενώνονται σε μια ροή και η ροή διαβάζεται ξανά σε byte των 8 bit.

Τύπος υπολογισμού του μήκους κωδικοποίησης Base64

Για είσοδο n byte, το μήκος της κωδικοποιημένης μορφής σε χαρακτήρες είναι:

encoded_length = 4 × ⌈n / 3⌉

όπου ⌈x⌉ σημαίνει στρογγυλοποίηση προς τα πάνω στον πλησιέστερο ακέραιο. Ο τύπος αυτός δείχνει γιατί η έξοδος Base64 είναι πάντα περίπου κατά ένα τρίτο μεγαλύτερη από την είσοδο: 4 χαρακτήρες εξόδου για κάθε 3 byte εισόδου αντιστοιχούν σε αύξηση 33%.

Πού χρησιμοποιείται το Base64

  • Συνημμένα ηλεκτρονικού ταχυδρομείου (MIME). Το ηλεκτρονικό ταχυδρομείο σχεδιάστηκε για κείμενο, επομένως τα συνημμένα αρχεία μετατρέπονται σε Base64 πριν από την αποστολή, με αποτέλεσμα το συνημμένο αρχείο να είναι περίπου 33% μεγαλύτερο από το αρχικό.
  • URI δεδομένων. Μικρές εικόνες μπορούν να ενσωματωθούν απευθείας σε HTML ή CSS ως κείμενο, όπως το data:image/png;base64,iVBORw0KGgo..., αποφεύγοντας ένα ξεχωριστό αίτημα αρχείου. Αυτό λειτουργεί καλύτερα για μικρά αρχεία, καθώς τα μεγάλα διογκώνουν τη σελίδα και δεν μπορούν να αποθηκευτούν ξεχωριστά στην κρυφή μνήμη.
  • API και JSON. Το JSON δεν διαθέτει εγγενή τρόπο αποθήκευσης ακατέργαστων δυαδικών δεδομένων, επομένως τα δυαδικά αρχεία που αποστέλλονται μέσω API JSON συχνά κωδικοποιούνται πρώτα σε Base64.
  • Βασικός έλεγχος ταυτότητας HTTP. Η κεφαλίδα Authorization κωδικοποιεί ένα όνομα χρήστη και έναν κωδικό πρόσβασης σε Base64, για παράδειγμα Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Αυτό από μόνο του δεν είναι ασφαλές· τα διαπιστευτήρια μπορούν να διαβαστούν από οποιονδήποτε τα υποκλέψει, επομένως ο βασικός έλεγχος ταυτότητας πρέπει να χρησιμοποιείται μόνο μέσω HTTPS.
  • JSON Web Tokens (JWT). Καθένα από τα τρία μέρη ενός JWT κωδικοποιείται με Base64URL, μια παραλλαγή ασφαλή για τοποθέτηση μέσα σε URL.
  • Αποθήκευση δυαδικών δεδομένων ως κείμενο. Βάσεις δεδομένων ή αρχεία ρυθμίσεων που δέχονται μόνο κείμενο αποθηκεύουν μερικές φορές δυαδικά δεδομένα ως συμβολοσειρά Base64.

Το Base64 σε σύγκριση με άλλες κωδικοποιήσεις

Base64 ασφαλές για URL αντικαθιστά τους τυπικούς χαρακτήρες + και / με τους χαρακτήρες - και _, επειδή τα + και / έχουν ειδική σημασία μέσα σε ένα URL. Χρησιμοποιείται για JWT, παραμέτρους ερωτήματος URL και ονόματα αρχείων. Αυτό το εργαλείο παράγει τυπική έξοδο Base64· η μετατροπή στη μορφή που είναι ασφαλής για URL απαιτεί μόνο την αντικατάσταση αυτών των δύο χαρακτήρων.

Base32 χρησιμοποιεί αλφάβητο 32 χαρακτήρων, επομένως κάθε χαρακτήρας μεταφέρει 5 bit αντί για 6. Μετατρέπει κάθε 5 byte σε 8 χαρακτήρες, με επιβάρυνση 60% (8 ÷ 5 = 1,6), σε σύγκριση με 33% για το Base64. Το Base32 επιλέγεται όταν η έξοδος πρέπει να πληκτρολογείται χειροκίνητα ή να διαβάζεται τηλεφωνικά, επειδή αποφεύγει τα γράμματα με διάκριση πεζών-κεφαλαίων και τους χαρακτήρες που συγχέονται εύκολα.

Δεκαεξαδικό χρησιμοποιεί 16 χαρακτήρες (0–9, A–F) και χρειάζεται 2 χαρακτήρες ανά byte, διπλασιάζοντας το μέγεθος (επιβάρυνση 100%). Χρησιμοποιείται συχνά για την εμφάνιση κατακερματισμών, χρωμάτων και διευθύνσεων MAC, όπου η αναγνωσιμότητα έχει μεγαλύτερη σημασία από το μικρό μέγεθος.

Πότε να μην χρησιμοποιείτε Base64

Το Base64 αυξάνει το μέγεθος και το υπολογιστικό κόστος, επομένως δεν είναι κατάλληλο για μεγάλα αρχεία που αποστέλλονται μέσω δικτύου· η απευθείας αποστολή των ακατέργαστων δυαδικών δεδομένων είναι μικρότερη και ταχύτερη. Δεν πρέπει ποτέ να χρησιμοποιείται για την απόκρυψη ευαίσθητων πληροφοριών, όπως κωδικών πρόσβασης ή κλειδιών API, επειδή η αποκωδικοποίηση δεν απαιτεί μυστικό. Για την αποθήκευση μεγάλων αρχείων, ο δυαδικός τύπος στήλης μιας βάσης δεδομένων ή μια υπηρεσία αποθήκευσης αρχείων είναι συνήθως προτιμότερη από μια μεγάλη συμβολοσειρά Base64 σε πεδίο κειμένου.

Συνήθη λάθη

  • Παράλειψη της μετατροπής UTF-8. Η κωδικοποίηση κειμένου με τονισμένα γράμματα ή emoji χωρίς προηγούμενη μετατροπή σε byte UTF-8 μπορεί να αλλοιώσει την έξοδο.
  • Αφαίρεση της συμπλήρωσης. Ορισμένα συστήματα αφαιρούν τους χαρακτήρες = στο τέλος. Οι περισσότεροι αποκωδικοποιητές εξακολουθούν να λειτουργούν αν το μήκος της συμβολοσειράς συμπληρωθεί ξανά σε πολλαπλάσιο του 4, αλλά δεν το αποδέχονται όλοι, επομένως είναι ασφαλέστερο να διατηρείται η συμπλήρωση.
  • Υπολείμματα αλλαγών γραμμής. Παλαιότεροι κωδικοποιητές που βασίζονται στο MIME εισάγουν αλλαγή γραμμής κάθε 76 χαρακτήρες· οι περισσότεροι σύγχρονοι αποκωδικοποιητές αναμένουν μία συνεχή συμβολοσειρά χωρίς αυτές.
  • Σύγχυση των παραλλαγών. Το τυπικό Base64 και το Base64 που είναι ασφαλές για URL χρησιμοποιούν διαφορετικούς χαρακτήρες για τις ίδιες δύο θέσεις του αλφαβήτου· η αποκωδικοποίηση με τη λανθασμένη παραλλαγή παράγει άχρηστα δεδομένα ή σφάλμα.

Συχνές ερωτήσεις

Είναι το Base64 μορφή κρυπτογράφησης; Όχι. Είναι αναστρέψιμη κωδικοποίηση κειμένου, όχι κρυπτογράφηση. Οποιοσδήποτε μπορεί να αποκωδικοποιήσει αμέσως μια συμβολοσειρά Base64 χωρίς κωδικό πρόσβασης. Χρησιμοποιήστε έναν αλγόριθμο κρυπτογράφησης, όπως τον AES, αν τα δεδομένα πρέπει να παραμείνουν απόρρητα.

Γιατί το Base64 κάνει τα δεδομένα μεγαλύτερα; Επειδή χρησιμοποιεί έναν ολόκληρο χαρακτήρα για τη μεταφορά μόνο 6 bit, ενώ ένα ακατέργαστο byte περιέχει 8 bit. Η μετατροπή 3 byte (24 bit) σε 4 χαρακτήρες σημαίνει ότι η έξοδος είναι 4/3, δηλαδή περίπου 33%, μεγαλύτερη από την είσοδο.

Μπορεί το Base64 να κωδικοποιήσει εικόνες και άλλα δυαδικά αρχεία; Ναι. Κάθε δυαδικό αρχείο, συμπεριλαμβανομένων εικόνων, PDF και αρχείων ήχου, μπορεί να κωδικοποιηθεί σε Base64 και να αποκωδικοποιηθεί ξανά byte προς byte. Χρησιμοποιείται συχνά για μικρές εικόνες που ενσωματώνονται σε HTML ή CSS, αλλά δεν είναι κατάλληλο για μεγάλα αρχεία.

Ποια είναι η διαφορά μεταξύ Base64 και Base64URL; Το Base64URL αντικαθιστά τους τυπικούς χαρακτήρες + και / με τους χαρακτήρες - και _, ώστε το αποτέλεσμα να μπορεί να τοποθετηθεί με ασφάλεια μέσα σε URL ή όνομα αρχείου χωρίς πρόσθετη διαφυγή χαρακτήρων. Τα JWT χρησιμοποιούν Base64URL γι’ αυτόν τον λόγο.

Γιατί η συμβολοσειρά Base64 εμφανίζει σφάλμα «invalid» κατά την αποκωδικοποίηση; Οι συνηθέστερες αιτίες είναι χαρακτήρες που δεν ανήκουν στο αλφάβητο Base64, όπως οι χαρακτήρες - και _ της παραλλαγής που είναι ασφαλής για URL, ή μια συμβολοσειρά της οποίας το μήκος είναι κατά ένα μεγαλύτερο από πολλαπλάσιο του 4. Καμία έγκυρη συμβολοσειρά Base64 δεν έχει αυτό το μήκος. Η αποκωδικοποίηση αποτυγχάνει επίσης όταν τα αποκωδικοποιημένα byte δεν αποτελούν έγκυρο κείμενο UTF-8. Αυτό το εργαλείο αγνοεί τα κενά και τις αλλαγές γραμμής μέσα στη συμβολοσειρά και αποκωδικοποιεί ακόμη και συμβολοσειρά από την οποία έχει αφαιρεθεί η συμπλήρωση = στο τέλος.

Από πού προέρχεται το Base64; Η τεχνική ανάγεται στα πρώτα σχήματα αποστολής δυαδικών δεδομένων μέσω συστημάτων αλληλογραφίας που δέχονταν μόνο κείμενο, κατά τη δεκαετία του 1980, και τυποποιήθηκε επίσημα ως μέρος του MIME στο RFC 2045 το 1996. Η τρέχουσα προδιαγραφή αναφοράς για τα Base64, Base32 και Base16 είναι το RFC 4648.