কনটেন্টে যান

header.payload.signature

JWT ডিকোডার

JSON Web Token (JWT) হলো ডট দিয়ে আলাদা 3টি Base64url অংশ: হেডার, পেলোড ও সিগনেচার। টোকেন পেস্ট করে এর ক্লেইম ও সময় পড়ুন; এখানে এটি শুধু ডিকোড হয়, যাচাই হয় না।

টোকেন এই ট্যাবেই থাকে, কোথাও পাঠানো হয় না। ডিকোড হওয়া টোকেন মানেই বিশ্বাসযোগ্য টোকেন নয়: সিগনেচার এখানে কখনো যাচাই করা হয় না।

Scanned by NortonTM Safe Web

এক নজরে

মূল্য
কোনো চার্জ নেই
অ্যাকাউন্ট
লাগে না
স্ট্যান্ডার্ড
RFC 7519 (JWT), RFC 7515 (JWS), RFC 7516 (JWE)
সিগনেচার
যাচাই করা হয় না — টোকেন শুধু ডিকোড হয়
সময়
exp, nbf ও iat UTC-তে দেখানো হয় আর আপনার ঘড়ির সঙ্গে মেলানো হয়
আপলোড
নেই — টোকেন আপনার ব্রাউজার ট্যাবেই থাকে

একটি নমুনা টোকেন ও প্রচলিত অ্যালগরিদম

এই পেজের নমুনা টোকেন একটি ফেলনা কী দিয়ে HMAC-SHA-256-এ সই করা। প্রথম টেবিল বানাতে পেজ এটি ডিকোড করেছে।

নমুনা টোকেনের ক্লেইম
ক্লেইমমানসময় (UTC)
issauth.example.com—
subuser-42—
audapi—
iat17000000002023-11-14 22:13:20 UTC
exp17000036002023-11-14 23:13:20 UTC
প্রচলিত সিগনিং অ্যালগরিদম (alg)
algপরিবারহ্যাশসিগনেচারের আকার
HS256HMACSHA-25632 B
HS512HMACSHA-51264 B
RS256RSASSA-PKCS1-v1_5SHA-256256 B (2048-bit key)
ES256ECDSA P-256SHA-25664 B
ES512ECDSA P-521SHA-512132 B
EdDSAEdDSA—64 B (Ed25519)

কীভাবে JWT ডিকোড করবেন

1

টোকেন পেস্ট করুন

পুরো টোকেন পেস্ট করুন, শুরুতে Bearer সহ বা ছাড়া। এতে ডট দিয়ে আলাদা 3টি অংশ থাকে, আর এনক্রিপ্টেড JWE হলে 5টি।

2

অংশগুলো পড়ুন

হেডার ও পেলোড ফরম্যাট করা JSON হিসেবে দেখা যায়, আর প্রতিটি ক্লেইম একটি টেবিলে তালিকাভুক্ত হয়। exp, nbf ও iat সময় UTC-তে দেখানো হয়।

3

সময় দেখুন

পেজ exp ও nbf-কে আপনার ডিভাইসের ঘড়ির সঙ্গে মেলায় এবং বলে টোকেনের মেয়াদ শেষ হয়েছে কি না। টোকেনটি আসল কি না তা এটি বলে না।

JWT কীভাবে গঠিত

JWT (RFC 7519) লেখা হয় header.payload.signature রূপে। হেডার ও পেলোড JSON অবজেক্ট, প্রতিটি প্যাডিং ছাড়া Base64url-এ এনকোড করা (RFC 4648, সেকশন 5), আর সিগনেচার একই এনকোডিংয়ে কাঁচা বাইট। ডিকোড শুধু এনকোডিং বদলায়, তাই টোকেন যার হাতে আছে সে-ই এর পেলোড পড়তে পারে: এতে গোপন তথ্য রাখবেন না। হেডারে alg-এ সিগনিং অ্যালগরিদমের নাম থাকে, যেমন HS256 (SHA-256 সহ HMAC, 32 বাইটের সিগনেচার) বা RS256 (SHA-256 সহ RSA, 2048-বিট কী-তে 256 বাইট)।

এই পেজ টোকেন ডিকোড করে, এর বেশি কিছু করে না। এটি সিগনেচার যাচাই করে না, কারণ তার জন্য কী লাগে, আর টোকেন আসল, বাতিল বা সার্ভারে গৃহীত কি না তা এটি বলতে পারে না। এটি exp, nbf ও iat ক্লেইম, যেগুলো 1970-01-01 UTC থেকে সেকেন্ড গোনে, আপনার ডিভাইসের ঘড়ির সঙ্গে মেলায় এবং UTC তারিখ-সময় হিসেবে ছাপে। 5 অংশের টোকেন একটি JWE: এর বিষয়বস্তু এনক্রিপ্টেড, তাই শুধু হেডার দেখানো যায়।

JWT নিয়ে প্রশ্ন

JWT ডিকোড করব কীভাবে?

বক্সে টোকেন পেস্ট করুন। পেজ এটিকে ডটে ভাগ করে, প্রথম দুটি অংশ Base64url থেকে বদলায় এবং JSON হিসেবে দেখায়। শুরুর Bearer উপেক্ষা করা হয়। নমুনা টোকেনের হেডার {"alg":"HS256","typ":"JWT"}।

এই পেজ কি সিগনেচার যাচাই করে?

না। যাচাইয়ে গোপন কী বা পাবলিক কী লাগে, আর এই পেজ কখনো তা চায় না। এখানে ডিকোড হওয়া টোকেনও জাল, বদলানো বা বাতিল হতে পারে। সিগনেচার যাচাই করুন আপনার নিজের সার্ভার কোডে, রক্ষণাবেক্ষণ করা একটি JWT লাইব্রেরি দিয়ে।

exp, iat ও nbf মানে কী?

এগুলো 1970-01-01 UTC থেকে সেকেন্ডে সময় (RFC 7519)। exp হলো টোকেনের মেয়াদ শেষের সময়, nbf হলো যে সময়ের আগে এটি গ্রহণ করা যাবে না, আর iat হলো ইস্যুর সময়। নমুনা টোকেনে iat 1700000000 হলো 2023-11-14 22:13:20 UTC আর exp 1700003600 তার এক ঘণ্টা পরে।

এখানে আসল টোকেন পেস্ট করা কি নিরাপদ?

টোকেন আপনার ব্রাউজার ট্যাবেই থাকে, কোথাও পাঠানো হয় না। তবু চালু টোকেন একটি পরিচয়পত্র: যার হাতে আছে সে মেয়াদ শেষ হওয়া পর্যন্ত এটি ব্যবহার করতে পারে। নিজের টোকেন পেস্ট করুন, আর পারলে মেয়াদোত্তীর্ণ বা টেস্ট টোকেন ব্যবহার করুন।

আমার টোকেনে 5টি অংশ কেন?

5 অংশের টোকেন একটি JWE, অর্থাৎ এনক্রিপ্টেড JSON Web Token (RFC 7516)। এর পেলোড প্রাপকের জন্য এনক্রিপ্ট করা, তাই এই পেজ শুধু হেডার আর অংশগুলোর আকার দেখায়। বিষয়বস্তু এখানে পড়া যায় না।

"not Base64url" বা "not JSON" মানে কী?

প্রথম দুটি অংশের প্রতিটি এমন Base64url টেক্সট হতে হবে যা ডিকোড হলে একটি JSON অবজেক্ট হয়। পেজ বলে কোন অংশ ব্যর্থ হয়েছে আর কেন: বর্ণমালার বাইরের অক্ষর, UTF-8 নয় এমন বাইট, বা নির্দিষ্ট লাইন ও কলামে ত্রুটিওয়ালা JSON। সাধারণত টোকেন কেটে গেলে বা বাড়তি অক্ষর থাকলে এমন হয়।