UltKit
Εικόνα11
PDF13
Έγγραφα και δεδομένα7
Βίντεο6
Ήχος4
Περισσότερα εργαλεία22

Μετατροπή JSON σε Base64

Μετατρέψτε ένα αρχείο JSON σε μία μόνο γραμμή κειμένου Base64 που περνά χωρίς προβλήματα από μεταβλητές περιβάλλοντος, πεδία YAML και σώματα αιτημάτων API, όπου τα εισαγωγικά, οι αγκύλες και οι αλλαγές γραμμής θα δημιουργούσαν προβλήματα. Με την αποκωδικοποίηση παίρνετε πίσω ακριβώς τα ίδια bytes.

Μετατροπέας δεδομένων

ή σύρετε Αρχεία CSV, TSV, TXT … εδώ ·

Έως 95 MB ανά αρχείο· Έως 20 αρχεία· Διαγραφή μετά από 30 λεπτά

Έξοδος

Τα αρχεία επεξεργάζονται στους διακομιστές μας και διαγράφονται μετά από 30 λεπτά.

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

  1. 1

    Ανεβάστε το αρχείο JSON

    Προσθέστε ένα αρχείο .json, .jsonl ή .ndjson, όπως ένα κλειδί service account ή ένα αρχείο ρυθμίσεων. Έως 20 αρχεία ανά παρτίδα, 95 MB το καθένα.

  2. 2

    Επιλέξτε το πρόθεμα

    Είναι ήδη επιλεγμένο το απλό Base64. Ενεργοποιήστε το Πρόθεμα Data URI στις Σύνθετες ρυθμίσεις μόνο αν το κείμενο θα μπει σε χαρακτηριστικό HTML ή CSS που περιμένει URL data:.

  3. 3

    Κωδικοποιήστε και αντιγράψτε

    Πατήστε Μετατροπή σε Base64 text, κάντε λήψη του αποτελέσματος και επικολλήστε τη συμβολοσειρά στο secret store, στο manifest ή στο σώμα του αιτήματός σας.

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

Γιατί να κωδικοποιήσετε ένα αρχείο JSON σε Base64

Η τυπική περίπτωση είναι ένα αρχείο διαπιστευτηρίων. Ένας πάροχος cloud σάς δίνει ένα κλειδί service account ως αρχείο JSON, ενώ το σύστημα CI, ο πίνακας ελέγχου φιλοξενίας ή η πλατφόρμα containers προσφέρει μόνο ένα μονόγραμμο πεδίο κειμένου για μυστικά. Η επικόλληση του ωμού JSON σπάει στην πρώτη αλλαγή γραμμής ή στο πρώτο εισαγωγικό χωρίς διαφυγή. Κωδικοποιημένο σε Base64, το ίδιο κλειδί γίνεται μία αδιάσπαστη συμβολοσειρά, που η εφαρμογή αποκωδικοποιεί κατά την εκκίνηση.

Το ίδιο το Base64 έχει τις ρίζες του στο email: το MIME, που ορίστηκε στο RFC 2045 το 1996, το χρησιμοποίησε ώστε τα συνημμένα να περνούν από διακομιστές αλληλογραφίας που μετέφεραν μόνο κείμενο 7 bit. Το αλφάβητο τυποποιήθηκε αυτόνομα αργότερα στο RFC 4648 το 2006. Το κόστος είναι το μέγεθος, αφού κάθε 3 byte γίνονται 4 χαρακτήρες. Για εικόνες και άλλα δυαδικά αρχεία, το Εικόνα σε Base64 κάνει την ίδια κωδικοποίηση με αντίστοιχο data URI. Αν το εργαλείο που λαμβάνει διαβάζει YAML και όχι πεδίο Base64, ίσως αρκεί το JSON σε YAML.

Παράδειγμα μετατροπής JSON σε Base64

Συμπαγές JSON {"env":"prod","retries":3} και η κωδικοποίησή του σε Base64
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Πού απαιτείται JSON κωδικοποιημένο σε Base64

Σημεία που δέχονται JSON μόνο ως Base64
ΟργανισμόςΑπαίτησηΠηγή
Kubernetes SecretsΚάθε τιμή κάτω από το data πρέπει να είναι Base64· για να προσαρτήσετε ένα αρχείο κλειδιού JSON, κωδικοποιήστε το πρώτα.kubernetes.io
GitHub REST APIΤο endpoint δημιουργίας ή ενημέρωσης περιεχομένου αρχείου περιμένει το αρχείο, και ένα αρχείο .json, ως Base64 στο content.docs.github.com
JSON Web Tokens (RFC 7519)Η κεφαλίδα και οι δηλώσεις (claims) JSON κωδικοποιούνται η καθεμία με base64url και ενώνονται με τελείες.—
Συνημμένα email (MIME)Ένα συνημμένο .json αποστέλλεται με κωδικοποίηση μεταφοράς Base64, ώστε να περνά από διακομιστές αλληλογραφίας που δέχονται μόνο κείμενο.—
Base64Κωδικοποίηση Base 64 · Κωδικοποίηση RFC 4648
Ένας τρόπος να γράφονται οποιαδήποτε byte με 64 ασφαλείς χαρακτήρες: A–Z, a–z, 0–9, + και /, με το = ως συμπλήρωση. Κάθε ομάδα 3 byte εισόδου γίνεται 4 χαρακτήρες εξόδου, άρα το κείμενο είναι περίπου κατά το ένα τρίτο μεγαλύτερο από το αρχείο. Είναι αναστρέψιμο και δεν χρησιμοποιεί κλειδί, γι' αυτό είναι μορφή μεταφοράς και όχι μέτρο ασφαλείας.

Βασικά στοιχεία για τις μορφές JSON και Base64

JSON

JavaScript Object Notation

Το JSON είναι μια ελαφριά μορφή κειμένου για δομημένα δεδομένα, που διαδόθηκε από τον Douglas Crockford στις αρχές της δεκαετίας του 2000 και τυποποιήθηκε ως RFC 8259 και ECMA-404. Αναπαριστά αντικείμενα, πίνακες, συμβολοσειρές, αριθμούς, λογικές τιμές και null με απλή, ευανάγνωστη σύνταξη. Είναι η προεπιλεγμένη μορφή για web APIs, αρχεία ρυθμίσεων και ανταλλαγή δεδομένων μεταξύ εφαρμογών σε σχεδόν κάθε γλώσσα προγραμματισμού. Δεν έχει ενσωματωμένα σχόλια, ημερομηνίες ή σχήματα, και τα μεγάλα εμφωλευμένα αρχεία διαβάζονται δύσκολα χωρίς πρόγραμμα προβολής.

Συμπίεση
–
Διαφάνεια
–
Κινούμενη εικόνα
–
Έτος εισαγωγής
2001 · Douglas Crockford
Μετατροπέας JSON

BASE64

Κείμενο κωδικοποιημένο σε Base64

Το Base64 είναι μια κωδικοποίηση, που ορίζεται στο RFC 4648, η οποία μετατρέπει οποιαδήποτε δυαδικά δεδομένα σε συμβολοσειρά 64 ασφαλών χαρακτήρων κειμένου. Χρησιμοποιείται για την ενσωμάτωση εικόνων σε HTML και CSS ως data URI, για τη συνημμένη αποστολή αρχείων στο email και για τη μεταφορά δυαδικών δεδομένων σε JSON ή XML. Η κωδικοποίηση είναι πλήρως αναστρέψιμη, αλλά αυξάνει το μέγεθος των δεδομένων κατά περίπου 33%. Το Base64 δεν είναι κρυπτογράφηση και δεν προσφέρει ασφάλεια· οποιοσδήποτε μπορεί να το αποκωδικοποιήσει.

Συμπίεση
Χωρίς απώλειες
Διαφάνεια
–
Κινούμενη εικόνα
–
Έτος εισαγωγής
–
Μετατροπέας BASE64

Το JSON κωδικοποιείται σε Base64 όταν ένα δομημένο περιεχόμενο πρέπει να χωρέσει σε ένα μόνο πεδίο συμβολοσειράς που δεν δέχεται ωμά εισαγωγικά και αλλαγές γραμμής: ένα μυστικό CI, ένα manifest Kubernetes, το πεδίο content ενός API ή την τιμή μιας κεφαλίδας.

Ερωτήσεις για τη μετατροπή JSON σε Base64

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

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

Χρειάζομαι Base64 ή base64url για ένα token ή ένα URL;

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

Πρέπει να συμπτύξω (minify) το JSON πριν την κωδικοποίηση;

Συνήθως ναι. Τα κενά, η εσοχή και οι αλλαγές γραμμής είναι byte όπως όλα τα άλλα και κάθε 3 byte γίνονται 4 χαρακτήρες εξόδου. Αν συμπτύξετε πρώτα ένα μορφοποιημένο αρχείο ρυθμίσεων, για παράδειγμα με jq -c, η κωδικοποιημένη συμβολοσειρά γίνεται αντίστοιχα μικρότερη.

Πώς αποκωδικοποιώ τη συμβολοσειρά πίσω σε JSON;

Σε macOS ή Linux εκτελέστε base64 --decode, στο PowerShell χρησιμοποιήστε [Convert]::FromBase64String και σε πρόγραμμα περιήγησης περάστε το αποτέλεσμα του atob από έναν TextDecoder, ώστε οι χαρακτήρες UTF-8 να επανέλθουν σωστά.

Γιατί το kubectl αναφέρει μη έγκυρα δεδομένα base64;

Η τιμή κάτω από το data σε ένα manifest Secret πρέπει να είναι έγκυρο Base64 σε μία γραμμή. Το σφάλμα συνήθως σημαίνει ότι μπήκε αλλαγή γραμμής κατά την επικόλληση ή ότι μπήκε απλό JSON κάτω από το data. Οι απλές τιμές ανήκουν στο stringData, το οποίο το Kubernetes κωδικοποιεί για εσάς.

Αλλάζει η κωδικοποίηση κάτι μέσα στο JSON μου;

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