हिन्दी

डेवलपर टूल · JWT डिकोडर

JWT की शारीरिक रचना: बिंदुओं पर विभाजन और Base64url को डिकोड करना

· यह काम किस प्रकार करता है

जेडब्ल्यूटी एन्कोडिंग सुरक्षा

तीन JWT खंडों में हेडर, पेलोड और हस्ताक्षर लेबल हैं
मूल ToolAcre वेक्टर चित्रण

JWT तीन Base64url खंड हैं जो बिंदुओं द्वारा अलग किए गए हैं। यह पोस्ट प्रत्येक भाग को हाथ से डिकोड करती है, बताती है कि हस्ताक्षर खंड टेक्स्ट क्यों नहीं है, और दिखाता है कि एक डिकोडर आपको क्या बता सकता है और क्या नहीं।

प्राधिकरण शीर्षलेख में लंबी स्ट्रिंग - आप क्या देख रहे हैं और इसमें बिल्कुल दो बिंदु क्यों हैं

एक वाहक टोकन अक्सर प्राधिकरण हेडर में एक कॉम्पैक्ट, डॉट-पृथक स्ट्रिंग के रूप में आता है। कॉम्पैक्ट JWS फॉर्म में एक विशिष्ट हस्ताक्षरित JWT में तीन खंड होते हैं और इसलिए दो अलग-अलग बिंदु होते हैं। एक सक्रिय टोकन एक क्रेडेंशियल है: उत्पादन टोकन को प्रदर्शन में पेस्ट न करें।

संक्षिप्त क्रमांकन - हेडर, पेलोड और हस्ताक्षर तीन Base64url खंडों के रूप में

कॉम्पैक्ट JWS क्रमांकन में पहला खंड संरक्षित हेडर है, दूसरा पेलोड है, और तीसरा एक हस्ताक्षर या MAC है। हस्ताक्षर एन्कोडेड पहले दो खंडों को कवर करता है, जो एक बिंदु से जुड़े होते हैं। स्ट्रिंग को विभाजित करने से खंडों का पता चलता है; यह विश्वास स्थापित नहीं कर सकता.

पैडिंग के बिना Base64url - वर्णमाला JWS का उपयोग करता है और खंडों में कोई पिछला समान चिह्न क्यों नहीं है

Base64url साधारण Base64 में + और / के स्थान पर - और _ का उपयोग करता है। कॉम्पैक्ट JWS ट्रेलिंग = पैडिंग को छोड़ देता है; एक डिकोडर डिकोडिंग से पहले पैडिंग को पुनर्स्थापित कर सकता है। डिकोडिंग बाइट्स उत्पन्न करता है। JSON हेडर और दावों के लिए, टेक्स्ट को पार्स करने से पहले बाइट्स को UTF-8 के रूप में डिकोड करें।

हेडर - एक छोटा JSON ऑब्जेक्ट जो एल्गोरिदम और, अक्सर, कुंजी का नामकरण करता है

हेडर आमतौर पर JSON होता है जिसमें एल्ग और कभी-कभी एक मुख्य पहचानकर्ता, किड होता है। ये टोकन द्वारा ही किए गए दावे हैं। एक सत्यापनकर्ता को अपनी स्वयं की अनुमत-एल्गोरिदम नीति लागू करनी होगी और उचित कुंजी सुरक्षित रूप से प्राप्त करनी होगी; अकेले एल्ग पढ़ना प्राधिकरण नहीं है।

पेलोड - दावों की एक JSON वस्तु, जो टोकन रखने वाले किसी भी व्यक्ति द्वारा पढ़ने योग्य है

पेलोड में सब, एक्सप और ऑड जैसे दावे शामिल हैं। टोकन रखने वाला कोई भी व्यक्ति उन्हें पढ़ सकता है; एन्कोडिंग एन्क्रिप्शन नहीं है. एक एक्सप न्यूमेरिकडेट Unix युग के बाद से सेकंड की गणना करता है, लेकिन एक असत्यापित दावे का कोई अधिकार नहीं है। पठनीय पेलोड में रहस्यों को संग्रहित न करें।

हस्ताक्षर - पहले दो खंडों पर कच्चे बाइट्स, पाठ के रूप में अर्थहीन और कुंजी के बिना बेकार

अंतिम खंड Base64url में एन्कोड किए गए हस्ताक्षर बाइट्स हैं, न कि कोई तीसरा JSON ऑब्जेक्ट। इसे मान्य करने के लिए क्रिप्टोग्राफ़िक एल्गोरिदम, कुंजी और एप्लिकेशन नीति की आवश्यकता होती है। ToolAcre जानबूझकर सत्यापन नहीं करता है: यह हस्ताक्षर की उपस्थिति की रिपोर्ट करता है और हमेशा हस्ताक्षर सत्यापित गलत को चिह्नित करता है।

कार्यान्वित उदाहरण - एक नमूना टोकन खंड को खंड द्वारा डिकोड करना, जिसमें दिखाई देने वाला JSON भी शामिल है

गैर-संवेदनशील प्रदर्शन शीर्षलेख {"alg":"HS256","typ":"JWT"} और पेलोड {"sub":"demo"} लें। उनके Base64url एन्कोडिंग eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 और eyJzdWIiOiJkZW1vIn0 हैं। डिकोडिंग JSON को पुनः प्राप्त करता है। एक मनमाना तीसरा खंड जोड़ने से टोकन प्रामाणिक नहीं बनता है।

टेकअवे: डिकोडिंग पढ़ना है, भरोसा करना नहीं - ToolAcre JWT डिकोडर हेडर और पेलोड दिखाता है और हस्ताक्षर को कभी सत्यापित नहीं करता है, इसलिए यह जो कुछ भी दिखाता है वह साबित नहीं करता है कि टोकन वास्तविक है

डिकोडिंग पढ़ना है, भरोसा करना नहीं। थ्रोअवे टोकन के हेडर, दावों और चेतावनियों के लिए ToolAcre JWT डिकोडर का उपयोग करें; यह तय करने के लिए कि हस्ताक्षरित टोकन वैध है या नहीं, अपने एप्लिकेशन के विश्वसनीय सत्यापनकर्ता का उपयोग करें। अकेले प्रदर्शित दावों को कभी भी पहुंच प्रदान नहीं करनी चाहिए।