fixmint
EL

Το Base64 εξηγείται: γιατί μεγαλώνει τα δεδομένα και πώς αποκωδικοποιείται

Από · · ενημερώθηκε 8 Νοεμβρίου 2026 · 5 λεπτά ανάγνωση

Το Base64 γράφει δυαδικά δεδομένα ως απλό κείμενο, χρησιμοποιώντας 64 χαρακτήρες: τα A έως Z, τα a έως z, τα 0 έως 9, και τα + και /. Κάθε τρία bytes γίνονται τέσσερις χαρακτήρες, οπότε το κείμενο είναι περίπου ένα τρίτο μεγαλύτερο από τα δεδομένα που περιέχει. Το χρησιμοποιούμε όταν μια μορφή δέχεται μόνο κείμενο, όπως ένα data URL σε μια ιστοσελίδα, ένα πεδίο JSON ή ένα συνημμένο email.

Κωδικοποίηση και αποκωδικοποίηση Base64Μετατροπή σε Base64 και αντίστροφαΚάντε το δωρεάν

Γιατί οι μορφές κειμένου το χρειάζονται

Πολλές μορφές σχεδιάστηκαν μόνο για κείμενο. Το σώμα ενός email, ένα αρχείο JSON και ένα αρχείο CSS μπορούν να περιέχουν γράμματα και σύμβολα με ασφάλεια, αλλά μια ακατέργαστη εικόνα ή ένα αρχείο zip περιέχει τιμές bytes που κάποια συστήματα θα άλλαζαν, θα έκοβαν ή θα διάβαζαν ως κωδικούς ελέγχου. Το Base64 χρησιμοποιεί μόνο χαρακτήρες που κάθε σύστημα κειμένου περνάει αναλλοίωτους, οπότε τα δεδομένα φτάνουν ανέπαφα. Ορίζεται στο RFC 4648.

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

Πώς τα τρία bytes γίνονται τέσσερις χαρακτήρες

Πάρτε τη λέξη Man, δηλαδή τρία bytes: 77, 97 και 110 σε δεκαδικό. Μαζί αυτά τα τρία bytes κάνουν 24 bits. Χωρίζοντας τα 24 bits σε τέσσερις ομάδες των έξι bits, κάθε ομάδα είναι ένας αριθμός από το 0 έως το 63, ο οποίος δείχνει έναν χαρακτήρα της αλφαβήτου. Το Man γίνεται TWFu.

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

Όταν τα δεδομένα δεν χωρίζονται σε τριάδες bytes, ο κωδικοποιητής συμπληρώνει το τέλος με χαρακτήρες =. Το Ma, δηλαδή δύο bytes, γίνεται TWE=, και το M, ένα byte, γίνεται TQ==. Η συμπλήρωση λέει στον αποκωδικοποιητή πόσα bytes περιέχει η τελευταία ομάδα.

Το κείμενο πρέπει πρώτα να κωδικοποιηθεί σε UTF-8

Το Base64 δουλεύει με bytes, ενώ το κείμενο αποτελείται από χαρακτήρες. Ένας χαρακτήρας όπως το é ή το ✓ αποθηκεύεται σε περισσότερα από ένα bytes στο UTF-8, την κωδικοποίηση που χρησιμοποιείται στο web. Η συνάρτηση του browser btoa() παίρνει ένα string και θεωρεί κάθε χαρακτήρα ως ένα byte, οπότε αποτυγχάνει σε χαρακτήρες πάνω από το βασικό λατινικό εύρος. Αν την καλέσετε σε ένα σημάδι ελέγχου (✓), πετάει InvalidCharacterError.

Η λύση είναι να μετατρέψετε πρώτα το κείμενο σε bytes UTF-8 και μετά να κωδικοποιήσετε αυτά τα bytes. Η φράση héllo ✓ είναι 10 bytes σε UTF-8, και το Base64 της είναι aMOpbGxvIOKckw==. Το εργαλείο Base64 κάνει αυτό το βήμα για εσάς. Κατά την αποκωδικοποίηση, διαβάζει τα bytes πίσω ως UTF-8. Αν τα bytes δεν είναι έγκυρο κείμενο UTF-8, το εργαλείο τα αντιμετωπίζει ως αρχείο και προσφέρει λήψη.

Base64 ασφαλές για URL

Το τυπικό αλφάβητο περιέχει τα + και /. Σε ένα URL, το + μπορεί να σημαίνει κενό, και το / χωρίζει τα μέρη μιας διαδρομής, οπότε ένα string Base64 μπορεί να σπάσει έναν σύνδεσμο. Η μορφή ασφαλής για URL (RFC 4648, ενότητα 5) χρησιμοποιεί αντ' αυτών τα - και _, και συνήθως αφαιρεί τη συμπλήρωση =. Χρησιμοποιήστε την όταν το string μπαίνει σε URL, όνομα αρχείου ή token. Ο αποκωδικοποιητής δέχεται και τις δύο μορφές, με ή χωρίς συμπλήρωση.

Αν το Base64 προέρχεται από έναν σύνδεσμο, αποκωδικοποιήστε πρώτα το URL. Μια τιμή που ήταν κωδικοποιημένη με ποσοστιαία σήμανση σε έναν σύνδεσμο πρέπει να αποκωδικοποιηθεί πριν διαβαστεί το Base64 της. Ο οδηγός για το percent-encoding εξηγεί τους κανόνες για τους συνδέσμους.

Το συνηθισμένο παράδειγμα είναι ένα διακριτικό σύνδεσης: ένα JSON Web Token αποτελείται από τρία μέρη Base64url χωρισμένα με τελείες, μια κεφαλίδα, τα δεδομένα και μια υπογραφή. Ο αποκωδικοποιητής JWT το χωρίζει και εμφανίζει την κεφαλίδα και τα δεδομένα ως ευανάγνωστο JSON.

Data URL και εικόνες

Ένα data URL βάζει το αρχείο μέσα στον ίδιο τον σύνδεσμο. Η μορφή του είναι data:, μετά ο τύπος μέσου, μετά ;base64, μετά κόμμα και τα δεδομένα. Μια μικρή εικόνα γίνεται data:image/png;base64, ακολουθούμενο από τα κωδικοποιημένα bytes. Οι ιστοσελίδες και τα φύλλα στυλ δέχονται αυτή τη μορφή, κάτι που εξοικονομεί ένα αίτημα για ένα μικροσκοπικό εικονίδιο.

Το κόστος είναι το μέγεθος. Τα δεδομένα είναι περίπου ένα τρίτο μεγαλύτερα, και ταξιδεύουν μέσα στη σελίδα ή στο φύλλο στυλ αντί για ξεχωριστό αρχείο που μπορεί να αποθηκεύσει ο browser στην cache. Χρησιμοποιήστε data URL για μικρές εικόνες, όχι για μεγάλες φωτογραφίες. Συμπιέστε τη φωτογραφία πριν την κωδικοποιήσετε, αν είναι μεγάλη.

Όταν αποκωδικοποιείτε Base64 στο εργαλείο, εξετάζει τα πρώτα bytes των δεδομένων. Τα αρχεία PNG, JPEG, GIF και WebP ξεκινούν το καθένα με γνωστή υπογραφή, οπότε το εργαλείο εμφανίζει προεπισκόπηση και προσφέρει λήψη. Ένα data URL με τύπο εικόνας εμφανίζεται επίσης ως εικόνα.

Πώς να το κάνετε με το fixmint

  1. Επιλέξτε Κωδικοποίηση ή Αποκωδικοποίηση πάνω από το Κείμενο ή Base64, και μετά επικολλήστε το κείμενο ή το Base64 σας.
  2. Επιλέξτε Αλφάβητο ασφαλές για URL, χωρίς συμπλήρωση = για tokens, ονόματα αρχείων και συνδέσμους. Ο αποκωδικοποιητής δέχεται και τις δύο μορφές, όπως και να έχει.
  3. Για να φτιάξετε ένα data URL από αρχείο, σύρετε το αρχείο στην περιοχή σύρσεως και επιλέξτε Για αρχεία: εξαγωγή ως data: URL.
  4. Αντιγράψτε το αποτέλεσμα. Αν τα αποκωδικοποιημένα bytes είναι αρχείο και όχι κείμενο, χρησιμοποιήστε τη λήψη που προσφέρει το εργαλείο.

Συνήθη σφάλματα αποκωδικοποίησης

  • Ένας χαρακτήρας δεν επιτρέπεται. Η είσοδος περιέχει χαρακτήρα εκτός των 64, όπως ένα εισαγωγικό από μια αντιγραμμένη πρόταση. Ελέγξτε από πού προήλθε το κείμενο. Ένα κενό μηδενικού πλάτους στο αντιγραμμένο κείμενο προκαλεί το ίδιο σφάλμα, οπότε αφαιρέστε τους αόρατους χαρακτήρες και δοκιμάστε ξανά. Ο οδηγός για τους αόρατους χαρακτήρες καλύπτει από πού προέρχονται.
  • Το μήκος είναι λάθος. Λείπει ή περισσεύει ένας χαρακτήρας, που συνήθως σημαίνει ότι η αντιγραφή κόπηκε.
  • Αλλαγές γραμμής και κενά. Το email (MIME) τυλίγει το Base64 κάθε 76 χαρακτήρες. Ο αποκωδικοποιητής αφαιρεί τα κενά και τις αλλαγές γραμμής, οπότε μπορείτε να επικολλήσετε κείμενο τυλιγμένο όπως είναι.
  • Λείπει η συμπλήρωση. Ορισμένα συστήματα αφαιρούν τα =. Ο αποκωδικοποιητής τα προσθέτει ξανά.

Ειδικές περιπτώσεις

  • Το αποκωδικοποιημένο αποτέλεσμα μοιάζει με ανοησίες. Μπορεί να είναι αρχείο και όχι κείμενο. Ένα αρχείο zip, ένα PDF ή ένα πρόγραμμα αποκωδικοποιείται σε bytes που δεν διαβάζονται ως κείμενο. Το εργαλείο τα προσφέρει ως λήψη.
  • Πολύ μεγάλες εισόδοι. Όλο το αρχείο κρατιέται στον browser όσο κωδικοποιείται ή αποκωδικοποιείται, οπότε ένα πολύ μεγάλο αρχείο μπορεί να είναι αργό, και στο κινητό να αποτύχει.

Σύντομες απαντήσεις

Είναι το Base64 το ίδιο με την κρυπτογράφηση;

Όχι. Είναι μια αναστρέψιμη κωδικοποίηση χωρίς κλειδί, οπότε μπορεί να την αποκωδικοποιήσει οποιοσδήποτε.

Γιατί το Base64 μου είναι μεγαλύτερο από το αρχείο;

Κάθε τριάδα bytes γίνεται τέσσερις χαρακτήρες, οπότε το κείμενο είναι περίπου ένα τρίτο μεγαλύτερο.

Γιατί ένα αντιγραμμένο string Base64 δεν αποκωδικοποιείται;

Συνήθως κάποιος χαρακτήρας χάθηκε ή προστέθηκε κατά την αντιγραφή, για παράδειγμα μια αλλαγή γραμμής σε λάθος σημείο ή ένας λείπων τελικός χαρακτήρας. Αντιγράψτε το ξανά από την πηγή.

Μετάφραση από το Αγγλικό πρωτότυπο με τη βοήθεια τεχνητής νοημοσύνης.

Σχόλια

    Δεν υπάρχουν σχόλια ακόμη. Γίνετε οι πρώτοι.

    Η βαθμολογία σας (προαιρετικό)

    Το email σας δεν εμφανίζεται ούτε αποθηκεύεται ποτέ.

    Εξώφυλλο του How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

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

    $3.84Αγοράστε στο GumroadΣτα αγγλικά