JWK ⇄ PEM कुंजी रूपांतरक
वास्तविक Web Crypto API का उपयोग करके क्रिप्टोग्राफ़िक कुंजियों को JWK और PEM फ़ॉर्मेट के बीच बदलें, एल्गोरिदम/कर्व/आकार डिकोड करें और RFC 7638 JWK थंबप्रिंट की गणना करें।
🔒 पूरी तरह से आपके ब्राउज़र में संसाधित - आपके द्वारा यहां दर्ज की गई कोई भी चीज़ कभी भी अपलोड नहीं की जाती है।
परिणाम
JSON Web Keys (JWK) और PEM-एन्कोडेड कुंजियाँ JWT लाइब्रेरी, TLS टूलिंग और OAuth/OIDC कॉन्फ़िगरेशन में एक-दूसरे की जगह इस्तेमाल होती हैं, लेकिन इनके बीच हाथ से रूपांतरण करने का मतलब है DER संरचनाओं को base64-डिकोड करना या JSON को दोबारा फ़ॉर्मेट करना — इसमें छोटी-सी गलती आसानी से हो सकती है। यह उपकरण टेक्स्ट मैनिपुलेशन के बजाय ब्राउज़र के वास्तविक Web Crypto API से रूपांतरण करता है: चिपकाया गया PEM ब्लॉक crypto.subtle.importKey('spki'|'pkcs8', ...) से आयात किया जाता है और exportKey('jwk', ...) से JWK के रूप में पुनः निर्यात किया जाता है; चिपकाया गया JWK importKey('jwk', ...) से आयात किया जाता है और SPKI या PKCS8 DER के रूप में पुनः निर्यात किया जाता है, फिर सही PEM हैडर में लपेटा जाता है। क्योंकि ब्राउज़र स्वयं कुंजी सामग्री को मान्य और डिकोड करता है, कोई गलत कुंजी या बेमेल एल्गोरिदम चयन चुपचाप कचरा उत्पन्न करने के बजाय ज़ोरदार ढंग से विफल हो जाता है।
समर्थित एल्गोरिदम हैं RSA (RSASSA-PKCS1-v1_5), P-256/P-384/P-521 कर्व पर EC और — जहाँ ब्राउज़र इन्हें लागू करता है — Ed25519 और X25519। Web Crypto में Ed25519/X25519 के लिए ब्राउज़र समर्थन अभी भी इंजनों में असंगत है, इसलिए यूज़र एजेंट स्ट्रिंग से अनुमान लगाने के बजाय, उपकरण चयनित कर्व के लिए वास्तविक crypto.subtle.generateKey() जाँच चलाता है और यदि यहाँ समर्थित नहीं है तो साफ़ बता देता है, बजाय कोई मनगढ़ंत परिणाम लौटाने के।
हर रूपांतरण कुंजी का वास्तविक मेटाडेटा भी डिकोड करता है: RSA कुंजियों के लिए, CryptoKey ऑब्जेक्ट से सीधे मापांक बिट लंबाई और हैश एल्गोरिदम; EC और OKP कुंजियों के लिए, नामित कर्व; और हर कुंजी के लिए, RFC 7638 JWK थंबप्रिंट — सख्त शब्दकोशीय क्रम में क्रमबद्ध JWK के आवश्यक सदस्यों का SHA-256 हैश (RSA के लिए e/kty/n, EC के लिए crv/kty/x/y, OKP/Ed25519/X25519 के लिए crv/kty/x)। यह थंबप्रिंट वह है जिसे कई सिस्टम कुंजी के "kid" पहचानकर्ता के रूप में उपयोग करते हैं, और सदस्य क्रम गलत होने पर बिल्कुल अलग हैश उत्पन्न होता है, ठीक उसी तरह की गलती जो हाथ से लिखे गए कार्यान्वयन में आसानी से हो जाती है।
क्योंकि सब कुछ आपके अपने ब्राउज़र टैब में crypto.subtle के माध्यम से चलता है, निजी कुंजी सामग्री कभी आपके डिवाइस को नहीं छोड़ती — रूपांतरण के किसी भी बिंदु पर कोई सर्वर नहीं है, कोई अपलोड नहीं है और कोई बाहरी API कॉल शामिल नहीं है।