JWT ডিকোডার
JSON Web Token (JWT) এর হেডার, পেলোড এবং স্বাক্ষর দেখতে ডিকোড করুন। অথেন্টিকেশন এবং অথরাইজেশনে ব্যবহৃত JWT টোকেন ডিবাগিং ও পরিদর্শনের জন্য উপযোগী। আপনার JWT এর বিষয়বস্তু কোথাও সংরক্ষিত হবে না।
পেলোড (Claims):
হেডার (সাইনিং অ্যালগরিদম এবং টোকেন টাইপ):
স্বাক্ষর:
স্বাক্ষরটি Base64URL-এনকোড করা ডাটা হিসেবে প্রদর্শিত হয়েছে। এই টুল দ্বারা স্বাক্ষর যাচাই করা হয় না।
JSON Web Tokens সম্পর্কে আরো
JWT ফরম্যাট
JSON Web Token (JWT) হলো দুই পক্ষের মধ্যে স্থানান্তরিত হওয়া দাবিগুলি উপস্থাপনের একটি সংক্ষিপ্ত, URL-নিরাপদ মাধ্যম। এটি ডট দ্বারা পৃথক করা তিনটি Base64URL-এনকোড করা অংশ নিয়ে গঠিত: header.payload.signature। হেডার সাধারণত টোকেন টাইপ (JWT) এবং সাইনিং অ্যালগরিদম ধারণ করে। পেলোড দাবিগুলি ধারণ করে—একটি সত্তা (সাধারণত ব্যবহারকারী) সম্পর্কে বিবৃতি এবং অতিরিক্ত মেটাডাটা। স্বাক্ষর যাচাই করতে ব্যবহৃত হয় যে বার্তাটি পথে পরিবর্তিত হয়নি।
JOSE (JSON Object Signing and Encryption)
JWT বৃহত্তর JOSE (JSON Object Signing and Encryption) ফ্রেমওয়ার্কের অংশ, যা JSON-ভিত্তিক ডাটা সুরক্ষিত করার একটি প্রমিত উপায় প্রদান করে। JOSE বেশ কয়েকটি সম্পর্কিত স্পেসিফিকেশন অন্তর্ভুক্ত করে: সাইন করা টোকেনের জন্য JWS (JSON Web Signature), এনক্রিপ্ট করা টোকেনের জন্য JWE (JSON Web Encryption), ক্রিপ্টোগ্রাফিক কী উপস্থাপনের জন্য JWK (JSON Web Key), এবং ক্রিপ্টোগ্রাফিক অ্যালগরিদম নির্দিষ্ট করার জন্য JWA (JSON Web Algorithms)।
JSON Web Signature (JWS)
আপনি যে বেশিরভাগ JWT দেখেন সেগুলি JWS টোকেন—এগুলি সাইন করা কিন্তু এনক্রিপ্ট করা নয়। এর মানে যে কেউ Base64URL-ডিকোডিং করে পেলোড পড়তে পারে, কিন্তু স্বাক্ষর অবৈধ না করে এটি পরিবর্তন করতে পারে না। JWS অখণ্ডতা এবং সত্যতা প্রদান করে: আপনি যাচাই করতে পারেন যে টোকেনটি একটি বিশ্বস্ত পক্ষ দ্বারা জারি করা হয়েছে এবং এটির সাথে কোনো ছলনা করা হয়নি।
সাইনিং অ্যালগরিদম
JWS টোকেন সাইন করার জন্য বিভিন্ন ক্রিপ্টোগ্রাফিক অ্যালগরিদম সমর্থন করে। এগুলি দুটি বিভাগে পড়ে: সিমেট্রিক অ্যালগরিদম (সাইনিং এবং যাচাইয়ের জন্য একই কী) এবং অ্যাসিমেট্রিক অ্যালগরিদম (সাইনিং-এর জন্য প্রাইভেট কী, যাচাইয়ের জন্য পাবলিক কী)।
HMAC অ্যালগরিদম (সিমেট্রিক)
HS256, HS384, এবং HS512 যথাক্রমে SHA-256, SHA-384, বা SHA-512 সহ HMAC (Hash-based Message Authentication Code) ব্যবহার করে। এগুলি সিমেট্রিক অ্যালগরিদম—টোকেন সাইন এবং যাচাই উভয়ের জন্য একই গোপন কী ব্যবহৃত হয়। HMAC অ্যালগরিদম দ্রুত এবং সহজ কিন্তু নিরাপদ কী বিতরণ প্রয়োজন কারণ উভয় পক্ষের একই গোপন কী প্রয়োজন।
RSA অ্যালগরিদম (অ্যাসিমেট্রিক)
RS256, RS384, এবং RS512 SHA-256, SHA-384, বা SHA-512 সহ RSASSA-PKCS1-v1_5 ব্যবহার করে। PS256, PS384, এবং PS512 RSASSA-PSS (probabilistic signature scheme) ব্যবহার করে। RSA অ্যালগরিদম সাইন করতে প্রাইভেট কী এবং যাচাই করতে পাবলিক কী ব্যবহার করে। এটি নিরাপত্তা ক্ষুণ্ণ না করে যাচাই কী প্রকাশ্যে শেয়ার করার অনুমতি দেয়—বিতরণ করা সিস্টেমের জন্য আদর্শ যেখানে একাধিক সেবা টোকেন যাচাই করতে হয়।
Elliptic Curve অ্যালগরিদম (অ্যাসিমেট্রিক)
ES256, ES384, এবং ES512 যথাক্রমে P-256, P-384, বা P-521 কার্ভ সহ ECDSA (Elliptic Curve Digital Signature Algorithm) ব্যবহার করে। EC অ্যালগরিদম RSA-এর সমান নিরাপত্তা প্রদান করে কিন্তু ছোট কী সাইজের সাথে, ফলে ছোট স্বাক্ষর এবং দ্রুত অপারেশন হয়। ES256 তার দক্ষতার কারণে আধুনিক অ্যাপ্লিকেশনগুলির জন্য ক্রমবর্ধমান জনপ্রিয়।
JSON Web Encryption (JWE)
JWS সাইন করা টোকেন প্রদান করলেও, JWE এনক্রিপ্ট করা টোকেন প্রদান করে যেখানে পেলোড গোপনীয়। JWE টোকেনে তিনটির পরিবর্তে পাঁচটি অংশ রয়েছে: হেডার, এনক্রিপ্ট করা কী, ইনিশিয়ালাইজেশন ভেক্টর, সাইফারটেক্সট, এবং অথেন্টিকেশন ট্যাগ। JWE AES-GCM এবং HMAC সহ AES-CBC সহ বিভিন্ন এনক্রিপশন অ্যালগরিদম সমর্থন করে। মনে রাখবেন যে এই ডিকোডার শুধুমাত্র JWS টোকেন হ্যান্ডেল করে; JWE টোকেনগুলির জন্য উপযুক্ত কী দিয়ে ডিক্রিপশন প্রয়োজন।
RFC স্পেসিফিকেশন
JWT এবং JOSE মান বেশ কয়েকটি IETF RFC-তে সংজ্ঞায়িত: RFC 7519 JSON Web Token (JWT) সংজ্ঞায়িত করে, RFC 7515 JSON Web Signature (JWS) সংজ্ঞায়িত করে, RFC 7516 JSON Web Encryption (JWE) সংজ্ঞায়িত করে, RFC 7517 JSON Web Key (JWK) সংজ্ঞায়িত করে, এবং RFC 7518 JSON Web Algorithms (JWA) সংজ্ঞায়িত করে।