RSA, EC ও Ed25519 কী-এর জন্য JSON Web Key-কে PEM-এ এবং উল্টোভাবে রূপান্তর করুন, থাম্বপ্রিন্টসহ
আপনার ব্রাউজারে চলে। আপনি যা লেখেন তা কোথাও পাঠানো হয় না। যাচাই করা হয়েছে 16 অক্টোবর, 2026।JWK হলো JSON-এ লেখা একটি কী, যা JWT, OAuth ও OpenID Connect ব্যবহার করে; PEM হলো Base64 টেক্সট রূপ, যা OpenSSL ও সার্ভার ব্যবহার করে। যেকোনো একটি পেস্ট করুন, এটি অন্যটিতে রূপান্তরিত হবে, RSA, EC (P-256, P-384, P-521, secp256k1) ও Ed25519 কী-এর জন্য, RFC 7638 থাম্বপ্রিন্টসহ, পুরোপুরি আপনার ব্রাউজারে।
এই পৃষ্ঠাটি ইংরেজি মূল লেখা থেকে যন্ত্রের সাহায্যে অনুবাদ করা হয়েছে। এই অনুবাদটি এখনও কোনো মানুষ পর্যালোচনা করেননি, তাই ইংরেজি সংস্করণটিকেই নির্ভরযোগ্য ধরুন। ইংরেজি মূল লেখাটি পড়ুন
JWK, কোনো jwks.json এন্ডপয়েন্টের JWK Set, অথবা একটি PEM কী বা সার্টিফিকেট পেস্ট করুন।
দিক নিজে থেকেই শনাক্ত হয়: JWK হয়ে যায় PEM, PEM হয়ে যায় JWK।
PEM ফরম্যাট বেছে নিন, যেমন PKCS#8 বা PKCS#1, অথবা প্রাইভেট অংশ বাদ দিতে শুধু পাবলিক কী-তে টিক দিন।
কপি বা ডাউনলোড-এ ক্লিক করুন; প্রতিটি কী-এর RFC 7638 থাম্বপ্রিন্ট দেখানো হয়।
JSON Web Key ও PEM ফাইল একই সংখ্যাগুলো দুটি আলাদা মোড়কে রাখে। JWK প্রতিটি অংশের নাম দেয়, যেমন RSA কী-এর মডুলাস "n" ও এক্সপোনেন্ট "e", বা EC কী-এর বিন্দু "x" ও "y", Base64url-এ। PEM ফাইল একই মানগুলো DER-এ রাখে, যা X.509 ও OpenSSL-এর বাইনারি ফরম্যাট, BEGIN ও END লাইনের মাঝে।
কী রূপান্তর করে।
| কী | JWK থেকে PEM | PEM থেকে JWK |
|---|---|---|
| RSA পাবলিক | SPKI বা PKCS#1 | PUBLIC KEY, RSA PUBLIC KEY, সার্টিফিকেট |
| RSA প্রাইভেট | PKCS#8 বা PKCS#1 | PRIVATE KEY, RSA PRIVATE KEY |
| EC P-256, P-384, P-521, secp256k1 | SPKI; PKCS#8 বা SEC1 | PUBLIC KEY, PRIVATE KEY, EC PRIVATE KEY |
| Ed25519, Ed448, X25519, X448 | SPKI; PKCS#8 | PUBLIC KEY, PRIVATE KEY |
একাধিক কী-সহ একটি JWK Set একাধিক PEM ব্লকে পরিণত হয়, আর একাধিক PEM ব্লক একটি JWK Set-এ পরিণত হয়। সার্টিফিকেট ও সার্টিফিকেট অনুরোধ তাদের পাবলিক কী দেয়।
ফরম্যাট। SPKI ("PUBLIC KEY") ও PKCS#8 ("PRIVATE KEY") সব ধরনের কী-এর জন্য কাজ করে এবং বেশিরভাগ লাইব্রেরি এগুলোই আশা করে। PKCS#1 ("RSA PUBLIC KEY", "RSA PRIVATE KEY") হলো পুরোনো, শুধু RSA-এর রূপ; SEC1 ("EC PRIVATE KEY") হলো OpenSSL-এর পুরোনো EC রূপ।
থাম্বপ্রিন্ট। প্রতিটি কী-এর RFC 7638 থাম্বপ্রিন্ট দেখানো হয়: নির্দিষ্ট ক্রমে এর আবশ্যিক সদস্যগুলোর SHA-256, যা অনেক প্রোভাইডার "kid" হিসেবে ব্যবহার করে। এটি JWK-তে বসাতে kid যোগ করুন-এ টিক দিন।
প্রাইভেট কী। প্রকাশের আগে প্রাইভেট সদস্যগুলো বাদ দিতে শুধু পাবলিক কী-তে টিক দিন। কোনো প্রাইভেট কী-তে তার পাবলিক অংশ না থাকলে, ব্রাউজারের নিজস্ব WebCrypto দিয়ে তা হিসাব করা হয়। পাসওয়ার্ড-সুরক্ষিত PEM ফাইল আগে ডিক্রিপ্ট করতে হবে।
প্রতিটি সমর্থিত কী-এর জন্য আউটপুট Node.js ও OpenSSL-এর সাথে বাইট ধরে মিলিয়ে দেখা হয়েছে, এবং RFC 7517 ও RFC 7638-এর উদাহরণের সাথেও। কী কখনো কোথাও পাঠানো হয় না এবং আপনি যা পেস্ট করেন তার কিছুই সংরক্ষিত হয় না।
বাক্সে JWK পেস্ট করুন, PEM সঙ্গে সঙ্গে দেখা যাবে: পাবলিক কী-এর জন্য একটি PUBLIC KEY ব্লক, প্রাইভেট কী-এর জন্য একটি PRIVATE KEY ব্লক। RSA কী-এর ক্ষেত্রে পুরোনো PKCS#1 রূপে, আর EC প্রাইভেট কী-এর ক্ষেত্রে SEC1-এ বদলাতে পারেন। একাধিক কী-সহ JWK Set প্রতিটি কী-এর জন্য একটি করে PEM ব্লক দেয়।
প্রোভাইডারের jwks.json ঠিকানাটি আপনার ব্রাউজারে খুলুন, পুরো JSON কপি করে এখানে পেস্ট করুন। keys তালিকার প্রতিটি কী একটি PEM পাবলিক কী হয়ে যায়, তার ধরন, আকার ও থাম্বপ্রিন্টসহ, যাতে আপনি যাচাই করতে চাওয়া টোকেনের হেডারের kid-এর সাথে মেলাতে পারেন।
দুটিই একটি RSA কী রাখে। PKCS#1, যার লেবেল RSA PRIVATE KEY বা RSA PUBLIC KEY, শুধু RSA সংখ্যাগুলো রাখে। PKCS#8, যার লেবেল PRIVATE KEY, যেকোনো ধরনের কী-কে একটি অ্যালগরিদম শনাক্তকারীসহ মুড়ে রাখে, যেমন SPKI পাবলিক কী-এর জন্য করে। Java ও Node.js-সহ বেশিরভাগ আধুনিক লাইব্রেরি PKCS#8 ও SPKI আশা করে।
কী থেকেই হিসাব করা একটি ছোট শনাক্তকারী, যা RFC 7638-এ সংজ্ঞায়িত: আবশ্যিক সদস্যগুলো, যেমন RSA-এর জন্য e, kty ও n, স্পেস ছাড়া বর্ণানুক্রমে JSON হিসেবে লেখা হয় এবং SHA-256 দিয়ে হ্যাশ করা হয়। একই কী সবসময় একই থাম্বপ্রিন্ট পায়, তাই এটি kid হিসেবে ভালো কাজ করে।
রূপান্তর পুরোপুরি আপনার ব্রাউজারে হয়; কী আপলোড, লগ বা সংরক্ষণ করা হয় না, এবং একবার লোড হলে পেজটি অফলাইনেও কাজ করে। তবুও যেকোনো প্রাইভেট কী সাবধানে ব্যবহার করুন এবং পারলে টেস্ট কী রূপান্তর করুন। প্রকাশের সময় শুধু পাবলিক কী-তে টিক দিন, যাতে প্রাইভেট সদস্যগুলো কখনো আউটপুটে না আসে।
Ed448 বা X448 প্রাইভেট কী-এর JWK-তে পাবলিক কী থাকতেই হবে, আর OpenSSL সাধারণত এই PEM ফাইলগুলো তা ছাড়াই লেখে। এটি হিসাব করতে Ed448-এর গণিত লাগে, যা ব্রাউজার দেয় না। কী-টি তার পাবলিক অংশসহ এক্সপোর্ট করুন, অথবা পাবলিক কী আলাদাভাবে রূপান্তর করুন।
হার ও নিয়ম বদলায়; কোনো অঙ্কের ওপর নির্ভর করার আগে সূত্রটি দেখে নিন।
এখনও আটকে আছেন? JWK থেকে PEM কনভার্টার সম্পর্কে প্রশ্ন করুন আর যিনি জানেন তিনিই উত্তর দিতে পারেন। কোনো অ্যাকাউন্ট লাগবে না।