JWT ডিকোডার

আপনার ব্রাউজারেই তাৎক্ষণিকভাবে JWT হেডার এবং পে-লোড ডিকোড করুন।

আপনার JWT পেস্ট করুন
প্রস্তুত। ডিকোড করতে একটি JWT পেস্ট করুন।

আপনার টোকেন আপনার ব্রাউজারেই ডিকোড করা হয়। BroBroGo-তে কিছুই আপলোড করা হয় না।

জিজ্ঞাসিত প্রশ্নাবলী

এখানে আমার JWT পেস্ট করা কি নিরাপদ?

হ্যাঁ। ডিকোডিং সম্পূর্ণভাবে আপনার ব্রাউজারে ঘটে — আপনার টোকেন কখনই BroBroGo-তে পাঠানো হয় না।

এটি কি সিগনেচার ভেরিফাই করে?

না। এটি আপনার পড়ার জন্য শুধুমাত্র হেডার এবং পে-লোড ডিকোড করে। সিগনেচার ভেরিফাই করার জন্য সাইনিং সিক্রেট বা পাবলিক কি-র প্রয়োজন হয়, যা এই টুলটি কখনই চায় না।

আমার টোকেনের মেয়াদ শেষ হয়েছে কি না তা কীভাবে বুঝব?

ডিকোডারটি exp ক্লেইমটি পড়ে এবং ডিকোড করা টোকেনের পাশে একটি স্ট্যাটাস ব্যাজ — বৈধ, মেয়াদোত্তীর্ণ, এখনও কার্যকর নয়, অথবা মেয়াদের তথ্য নেই — প্রদর্শন করে।

JSON Web Token-এর গঠন এবং কার্যপদ্ধতি

JSON Web Token (JWT) হলো একটি ওপেন স্ট্যান্ডার্ড (RFC 7519) যা দুটি পক্ষের মধ্যে নিরাপদে তথ্য আদান-প্রদানের জন্য ব্যবহৃত হয়। একটি স্ট্যান্ডার্ড JWT মূলত ডট (.) দ্বারা বিভক্ত তিনটি অংশ নিয়ে গঠিত। এই অংশগুলো হলো:

  1. হেডার: টোকেনটি কীভাবে সাইন করা হয়েছে এবং এর ধরন কী, সেই তথ্য এখানে থাকে।
  2. পে-লোড: টোকেনের মূল তথ্য বা ক্লেইমসমূহ (Claims) এখানে সংরক্ষিত থাকে।
  3. স্বাক্ষর (Signature): টোকেনটির সত্যতা এবং এটি পরিবর্তন করা হয়েছে কি না তা যাচাই করতে এই অংশটি ব্যবহৃত হয়।

এই তিনটি অংশকে Base64URL এনকোডিংয়ের মাধ্যমে একটি একক স্ট্রিংয়ে রূপান্তর করা হয়, যা দেখতে xxxxx.yyyyy.zzzzz ফরম্যাটের মতো হয়। Base64URL হলো এমন একটি এনকোডিং পদ্ধতি যা ইউআরএল-এর মধ্যে নিরাপদে ডেটা প্রেরণের জন্য ব্যবহৃত হয়, যেখানে সাধারণ Base64-এর কিছু ক্যারেক্টার (যেমন + এবং /) পরিবর্তন করে ইউআরএল-বান্ধব ক্যারেক্টার ব্যবহার করা হয়।

হেডার ও পে-লোডের সাধারণ ক্লেইমসমূহ

হেডার অংশে সাধারণত দুটি প্রধান তথ্য থাকে: অ্যালগরিদম (alg), যা টোকেনটি সাইন করার জন্য ব্যবহৃত হয় (যেমন HS256 বা RS256), এবং টোকেনের ধরন (typ), যা সাধারণত JWT হয়ে থাকে।

পে-লোড অংশে বিভিন্ন ক্লেইম বা তথ্য থাকে। এগুলোকে তিন ভাগে ভাগ করা যায়: রেজিস্টার্ড, পাবলিক এবং প্রাইভেট ক্লেইম। এর মধ্যে বহুল ব্যবহৃত কিছু রেজিস্টার্ড ক্লেইম হলো:

  • iat (Issued At): টোকেনটি কখন ইস্যু করা হয়েছিল তার সময় নির্দেশ করে।
  • exp (Expiration Time): টোকেনটির মেয়াদ কখন শেষ হবে সেই সময় নির্ধারণ করে।

এই ক্লেইমগুলো সাধারণত ইউনিক্স টাইমস্ট্যাম্প (Unix Timestamp) হিসেবে সংরক্ষিত থাকে।

ডিকোডিং বনাম ভেরিফিকেশন

একটি JWT ডিকোড করা এবং সেটি ভেরিফাই বা যাচাই করার মধ্যে বড় ধরনের পার্থক্য রয়েছে।

  • ডিকোডিং: এটি কেবল Base64URL এনকোডেড স্ট্রিংটিকে মানুষের পড়ার উপযোগী JSON ফরম্যাটে রূপান্তর করে। এর জন্য কোনো সিক্রেট কি (Secret Key) বা পাবলিক কি (Public Key)-র প্রয়োজন হয় না। যে কেউ যেকোনো JWT ডিকোড করে এর ভেতরের হেডার ও পে-লোড দেখে নিতে পারেন।
  • ভেরিফিকেশন: এটি টোকেনের সিগনেচার বা স্বাক্ষর পরীক্ষা করে নিশ্চিত করে যে টোকেনটি কোনো বিশ্বস্ত উৎস থেকে এসেছে এবং ইস্যু করার পর এটিতে কোনো পরিবর্তন করা হয়নি। সিগনেচার ভেরিফাই করার জন্য অবশ্যই সাইনিং সিক্রেট বা পাবলিক কি-র প্রয়োজন হয়।

শুধুমাত্র একটি JWT ডিকোড করে সেটির তথ্যের ওপর ভিত্তি করে কোনো গুরুত্বপূর্ণ সিদ্ধান্ত নেওয়া নিরাপদ নয়, কারণ সিগনেচার ভেরিফাই না করা পর্যন্ত নিশ্চিত হওয়া যায় না যে তথ্যগুলো আসল নাকি পরিবর্তিত।

ব্রাউজার-ভিত্তিক প্রসেসিং ও গোপনীয়তা

এই ডিকোডার টুলের মাধ্যমে আপনার টোকেন ডিকোড করার প্রক্রিয়াটি সম্পূর্ণভাবে আপনার নিজস্ব ওয়েব ব্রাউজারে সম্পন্ন হয়। BroBroGo-তে কিছুই আপলোড করা হয় না। যেহেতু সমস্ত প্রসেসিং স্থানীয়ভাবে আপনার ডিভাইসেই ঘটে, তাই আপনার টোকেনের ডেটা ইন্টারনেটের মাধ্যমে কোথাও প্রেরিত হয় না।

টুলের ইনপুট ও আউটপুট প্যারামিটার

টুলটি ব্যবহার করার জন্য আপনাকে নির্দিষ্ট ইনপুট প্রদান করতে হবে এবং এটি থেকে বিভিন্ন আউটপুট পাওয়া যাবে:

ইনপুট

  • JWT: একটি টেক্সট ফিল্ড যেখানে আপনাকে JSON Web Token স্ট্রিংটি পেস্ট করতে হবে। টোকেনটি অবশ্যই ডট দ্বারা বিভক্ত তিনটি অংশ বিশিষ্ট হতে হবে এবং এটি অতিরিক্ত দীর্ঘ হওয়া চলবে না।

আউটপুট ও স্ট্যাটাস

টোকেনটি সফলভাবে ডিকোড হলে টুলটি নিম্নলিখিত তথ্যগুলো প্রদর্শন করে:

  • হেডার: JSON ফরম্যাটে ডিকোড করা হেডার অংশ।
  • পে-লোড: JSON ফরম্যাটে ডিকোড করা পে-লোড অংশ।
  • অ্যালগরিদম: টোকেনে ব্যবহৃত অ্যালগরিদম।
  • টাইপ: টোকেনের ধরন।
  • ইস্যু করার সময়: টোকেনটি ইস্যু করার নির্দিষ্ট সময়।
  • মেয়াদ শেষ: টোকেনটির মেয়াদ শেষ হওয়ার সময়।
  • অক্ষর: ইনপুট দেওয়া JWT-তে মোট অক্ষরের সংখ্যা।

টুলটি টোকেনের exp ক্লেইমের ওপর ভিত্তি করে একটি স্ট্যাটাস ব্যাজ প্রদর্শন করে:

  • বৈধ: যদি টোকেনের মেয়াদ এখনও শেষ না হয়ে থাকে।
  • মেয়াদোত্তীর্ণ: যদি টোকেনের মেয়াদ শেষ হয়ে গিয়ে থাকে।
  • এখনও কার্যকর নয়: যদি টোকেনটি ব্যবহারের সময় এখনও শুরু না হয়।
  • মেয়াদের তথ্য নেই: যদি টোকেনে কোনো exp ক্লেইম না থাকে।

ত্রুটি ও বিশেষ নিয়মাবলী

টুলটি ব্যবহারের সময় ইনপুটের ওপর ভিত্তি করে কিছু নির্দিষ্ট নিয়ম ও ত্রুটি বার্তা প্রদর্শিত হতে পারে:

  • ইনপুট ফিল্ডটি খালি থাকলে টুলটি "প্রস্তুত। ডিকোড করতে একটি JWT পেস্ট করুন।" অবস্থায় থাকবে।
  • ইনপুটটি যদি ডট দ্বারা বিভক্ত তিনটি অংশ বিশিষ্ট না হয়, তবে "এটি একটি বৈধ JWT নয় — ডট দ্বারা বিভক্ত তিনটি অংশ প্রত্যাশিত।" বার্তাটি দেখাবে।
  • হেডারের Base64URL ডিকোডিং ব্যর্থ হলে "হেডার ডিকোড করা যায়নি — অবৈধ Base64URL।" ত্রুটি দেখাবে।
  • পে-লোডের Base64URL ডিকোডিং ব্যর্থ হলে "পে-লোড ডিকোড করা যায়নি — অবৈধ Base64URL।" ত্রুটি দেখাবে।
  • ডিকোড করার পর হেডারটি যদি সঠিক JSON ফরম্যাটে না থাকে, তবে "হেডারটি বৈধ JSON নয়।" বার্তাটি প্রদর্শিত হবে।
  • পে-লোডটি সঠিক JSON ফরম্যাটে না থাকলে "পে-লোডটি বৈধ JSON নয়।" বার্তাটি দেখাবে।
  • ইনপুটটি যদি অতিরিক্ত দীর্ঘ হয়, তবে টুলটি "এটি আসল JWT হওয়ার জন্য অতিরিক্ত দীর্ঘ।" বার্তাটি প্রদর্শন করবে।
  • যেকোনো ত্রুটিপূর্ণ বা অবৈধ টোকেন ইনপুট দিলে ডিকোড করা অংশগুলো স্বয়ংক্রিয়ভাবে লুকিয়ে ফেলা হয়।
  • ইনপুট মুছে ফেলার পর ফোকাস স্বয়ংক্রিয়ভাবে ইনপুট ফিল্ডে ফিরে যায়।
  • টুলটি কোনো সিগনেচার ভেরিফাই করে না এবং কোনো সাইনিং সিক্রেট বা পাবলিক কি চায় না।

প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)

এখানে আমার JWT পেস্ট করা কি নিরাপদ?
হ্যাঁ। ডিকোডিং সম্পূর্ণভাবে আপনার ব্রাউজারে ঘটে — আপনার টোকেন কখনই BroBroGo-তে পাঠানো হয় না।

এটি কি সিগনেচার ভেরিফাই করে?
না। এটি আপনার পড়ার জন্য শুধুমাত্র হেডার এবং পে-লোড ডিকোড করে। সিগনেচার ভেরিফাই করার জন্য সাইনিং সিক্রেট বা পাবলিক কি-র প্রয়োজন হয়, যা এই টুলটি কখনই চায় না।

আমার টোকেনের মেয়াদ শেষ হয়েছে কি না তা কীভাবে বুঝব?
ডিকোডারটি exp ক্লেইমটি পড়ে এবং ডিকোড করা টোকেনের পাশে একটি স্ট্যাটাস ব্যাজ — বৈধ, মেয়াদোত্তীর্ণ, এখনও কার্যকর নয়, অথবা মেয়াদের তথ্য নেই — প্রদর্শন করে।