Δωρεάν μετατροπέας

JWT Token Αποκωδικοποιητής

Αποκωδικοποιήστε την κεφαλίδα JWT (JSON Web Token) και το ωφέλιμο φορτίο αμέσως στο πρόγραμμα περιήγησής σας. Δωρεάν, ιδιωτικό και από την πλευρά του πελάτη — δεν αποστέλλονται δεδομένα σε κανένα διακομιστή.

Σχετικά με αυτό το εργαλείο

Τα JSON Web Tokens (JWT) είναι μια συμπαγής, ασφαλής για τη διεύθυνση URL μορφή για τη μετάδοση αξιώσεων μεταξύ δύο μερών, που ορίζεται από το RFC 7519. Ένα JWT είναι τρία τμήματα με κωδικοποίηση βάσης 64 url που χωρίζονται με κουκκίδες: κεφαλίδα (αλγόριθμος και τύπος διακριτικού), ωφέλιμο φορτίο (αξιώσεις) και υπογραφή (κρυπτογραφική απόδειξη αυθεντικότητας). Η κεφαλίδα και το ωφέλιμο φορτίο είναι JSON, με κωδικοποίηση base64url για ασφάλεια URL. η υπογραφή χρησιμοποιεί έναν από τους διάφορους αλγόριθμους (HS256, RS256, ES256 και άλλους) πάνω από την κωδικοποιημένη κεφαλίδα και το ωφέλιμο φορτίο.

Η αποκωδικοποίηση ενός JWT — ο διαχωρισμός του σε τμήματα και η αποκωδικοποίηση βάσης 64 — δεν απαιτεί κανένα μυστικό. Οποιοσδήποτε έχει το κείμενο διακριτικού μπορεί να διαβάσει την κεφαλίδα και το ωφέλιμο φορτίο του. Η υπογραφή, ωστόσο, μπορεί να επαληθευτεί μόνο με το μυστικό (HMAC) ή το δημόσιο κλειδί (ασύμμετρο). Η αποκωδικοποίηση είναι για επιθεώρηση. η επαλήθευση είναι αυτό που αποδεικνύει την αυθεντικότητα.

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

Γιατί να αποκωδικοποιήσετε τα JWT

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

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

Πώς να το χρησιμοποιήσετε

Επικολλήστε το διακριτικό, λάβετε τα αναλυμένα περιεχόμενα.

  1. Επικολλήστε το JWT σας: Ρίξτε το πλήρες διακριτικό (header.payload.signature) στην περιοχή εισαγωγής. Ο αποκωδικοποιητής δέχεται μάρκες με ή χωρίς το προαιρετικό πρόθεμα Bearer.
  2. Επιθεωρήστε την κεφαλίδα: Η κεφαλίδα δείχνει τον αλγόριθμο υπογραφής (alg) και τον τύπο διακριτικού (typ). Κοινοί αλγόριθμοι είναι οι HS256, RS256 και ES256. Παρακολουθήστε το alg: none, το οποίο σηματοδοτεί ένα ανυπόγραφο διακριτικό και σπάνια είναι ασφαλές στην παραγωγή.
  3. Επιθεωρήστε το ωφέλιμο φορτίο: Το ωφέλιμο φορτίο περιέχει τις αξιώσεις: iss (εκδότης), sub (θέμα), aud (κοινό), exp (λήξη), iat (έκδοση στο) και τυχόν αξιώσεις για συγκεκριμένη εφαρμογή. Οι τυπικές χρονικές σημάνσεις είναι δευτερόλεπτα εποχής Unix.
  4. Επαληθεύστε ξεχωριστά: Ο αποκωδικοποιητής δεν επαληθεύει την υπογραφή. Για να ελέγξετε την αυθεντικότητα, εκτελέστε το διακριτικό μέσω μιας βιβλιοθήκης JWT με το κατάλληλο μυστικό ή δημόσιο κλειδί στον κωδικό της εφαρμογής σας.

Κοινές περιπτώσεις χρήσης

Τεχνικές λεπτομέρειες

Η μορφή JWT είναι τρία τμήματα που ενώνονται με τελείες. Κάθε τμήμα έχει κωδικοποίηση base64url — η ασφαλής για URL παραλλαγή του base64 που χρησιμοποιεί - και _ αντί για + και /, ενώ μερικές φορές η πλήρωση παραλείπεται. Η αποκωδικοποίηση απαιτεί την αναίρεση των αντικαταστάσεων που είναι ασφαλείς για τη διεύθυνση URL, τη συμπλήρωση του τμήματος και την αποκωδικοποίηση base64.

Η κεφαλίδα και το ωφέλιμο φορτίο είναι JSON μετά την αποκωδικοποίηση. Το τμήμα υπογραφής είναι δυαδικό (ακατέργαστα byte υπογραφής) και δεν είναι αναγνώσιμο από τον άνθρωπο. απαιτεί το κλειδί επαλήθευσης για να είναι χρήσιμο.

Συνήθεις αξιώσεις που ορίζονται στο RFC 7519: iss (εκδότης), sub (αναγνωριστικό θέματος), aud (κοινό), exp (λήξη ως δευτερόλεπτα εποχής Unix), nbf (όχι πριν από τη χρονική σήμανση), iat (εκδόθηκε σε χρονική σήμανση), jti (μοναδικό αναγνωριστικό διακριτικού). Οι αξιώσεις για συγκεκριμένες εφαρμογές μπορούν να εμφανίζονται με οποιοδήποτε όνομα.

Βέλτιστες Πρακτικές

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

Είναι ασφαλές να επικολλήσω το JWT μου εδώ;
Ναι. Η αποκωδικοποίηση πραγματοποιείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας — το διακριτικό δεν αποστέλλεται ποτέ σε κανένα διακομιστή. Ωστόσο, τα JWT είναι διαπιστευτήρια — μην τα κοινοποιείτε δημόσια (σε στιγμιότυπα οθόνης, αναρτήσεις υπερχείλισης στοίβας κ.λπ.) καθώς ενδέχεται να παραχωρήσουν πρόσβαση στους λογαριασμούς σας.
Αυτό το εργαλείο επαληθεύει την υπογραφή JWT;
Αυτό το εργαλείο αποκωδικοποιεί και εμφανίζει τα περιεχόμενα του διακριτικού. Η επαλήθευση υπογραφής απαιτεί το μυστικό κλειδί (HMAC) ή το δημόσιο κλειδί (RSA/ECDSA), το οποίο θα πρέπει να παραμείνει στον διακομιστή σας. Το εργαλείο εμφανίζει τον αλγόριθμο που χρησιμοποιείται, αλλά δεν μπορεί να επαληθεύσει χωρίς το κλειδί.
Τι σημαίνουν οι τυπικές αξιώσεις JWT;
iss = εκδότης, υπο = θέμα (αναγνωριστικό χρήστη), exp = χρόνος λήξης (χρονοσήμανση Unix), iat = εκδόθηκε στις, nbf = όχι πριν, aud = κοινό, jti = JWT ID. Οι προσαρμοσμένες αξιώσεις μπορούν να περιέχουν οποιαδήποτε δεδομένα για συγκεκριμένη εφαρμογή.
Γιατί μπορεί κάποιος να αποκωδικοποιήσει ένα JWT;
Τα JWT είναι κωδικοποιημένα, όχι κρυπτογραφημένα. Το ωφέλιμο φορτίο είναι κωδικοποιημένο με Base64URL (όχι κρυπτογραφημένο), οπότε ο καθένας μπορεί να το διαβάσει. Η υπογραφή αποτρέπει την παραποίηση, όχι την ανάγνωση. Μην αποθηκεύετε ποτέ ευαίσθητα δεδομένα (κωδικούς πρόσβασης, SSN) σε ωφέλιμα φορτία JWT.
Γιατί λείπει μια υπογραφή σε ορισμένα διακριτικά;
Tokens με alg: κανένα δεν έχει υπογραφή. Είναι έγκυρα JWT ανά προδιαγραφή, αλλά δεν παρέχουν εγγυήσεις γνησιότητας και δεν πρέπει να γίνονται δεκτά στην παραγωγή.
Τα JWT είναι κρυπτογραφημένα;
Τα τυπικά ωφέλιμα φορτία JWT είναι υπογεγραμμένα αλλά δεν είναι κρυπτογραφημένα. Το JWE (JSON Web Encryption, RFC 7516) είναι μια ξεχωριστή μορφή για κρυπτογραφημένα διακριτικά. Τα περισσότερα JWT στη φύση είναι JWS (μόνο υπογεγραμμένα).
Το διακριτικό μου έχει μεταφορτωθεί σε διακομιστή;
Όχι. Η αποκωδικοποίηση γίνεται στο πρόγραμμα περιήγησής σας. το διακριτικό δεν φεύγει από τη συσκευή σας.
Πόσο διαρκεί συνήθως τα JWT;
Οπουδήποτε από μερικές εκατοντάδες έως αρκετές χιλιάδες χαρακτήρες. Το μήκος εξαρτάται από τον αριθμό και το μέγεθος των αξιώσεων συν το μήκος της υπογραφής (το οποίο εξαρτάται από τον αλγόριθμο).