इसका इस्तेमाल कैसे करें
- एल्गोरिदम चुनें: एन्क्रिप्ट करने के लिए RSA-OAEP, या हस्ताक्षर के एल्गोरिदम में से एक।
- कुंजी का आकार चुनें। 2048 बिट आम तौर पर न्यूनतम है; 4096 बिट बनाने में ज्यादा समय लेता है।
- कुंजी जोड़ी बनाएँ दबाएँ, फिर चारों बॉक्स की सामग्री कॉपी करें या डाउनलोड करें।
- निजी कुंजी को सीक्रेट मैनेजर में रखें, और उसे कभी किसी वेबसाइट, चैट या ऐसी फ़ाइल में न चिपकाएँ जिसे दूसरे पढ़ सकें।
कुंजी जोड़ी में क्या है
RSA कुंजी जोड़ी में एक सार्वजनिक हिस्सा होता है, जो कोई भी रख सकता है, और एक निजी हिस्सा, जिसे सिर्फ उसका मालिक रखता है। निजी कुंजी PKCS#8 (RFC 5958) में लिखी जाती है, सार्वजनिक कुंजी SubjectPublicKeyInfo (RFC 5280) में। दोनों PEM में लिपटी होती हैं, यानी BEGIN और END पंक्तियों के बीच Base64 टेक्स्ट (RFC 7468)। JWK रूप (RFC 7517) वही संख्याएँ JSON में रखता है।
मापांक n = p × q, दो अभाज्य संख्याएँ, हर एक कुंजी के आकार के लगभग आधे
सार्वजनिक घातांक e = 65537 (0x010001)
निजी घातांक d, जिसके लिए d × e = 1 मापांक (p − 1) × (q − 1)
एल्गोरिदम और कुंजी का आकार
RSA-OAEP एन्क्रिप्ट करता है, और RSA-PSS तथा RSASSA-PKCS1-v1_5 हस्ताक्षर करते हैं। तीनों यहाँ SHA-256 इस्तेमाल करते हैं। कुंजी का आकार मापांक n की लंबाई है: 2048 बिट आज आम तौर पर न्यूनतम है, और 3072 या 4096 बिट उन कुंजियों के लिए हैं जिन्हें ज्यादा समय तक टिकना है। बड़ी कुंजी इस्तेमाल में धीमी होती है, पर 4096-बिट जोड़ी की सार्वजनिक कुंजी फिर भी छोटी रहती है।
ब्राउज़र जोड़ी अपनी क्रिप्टोग्राफ़िक लाइब्रेरी से बनाता है (Web Cryptography API में crypto.subtle.generateKey)। पेज अपना RSA कोड नहीं लिखता।
कुंजियाँ कहाँ सुरक्षित हैं, और कहाँ नहीं
कुंजियाँ इस पेज से बाहर नहीं जातीं: वे न भेजी जाती हैं, न सहेजी जातीं, न लॉग होती हैं। खतरा पेज खुद है। इस पेज पर चलने वाली हर चीज, और ब्राउज़र का हर एक्सटेंशन, दिखाए जाने के समय कुंजी पढ़ सकता है, और क्लिपबोर्ड या डाउनलोड की प्रति तब तक डिस्क पर रहती है जब तक उसे मिटाया न जाए।
पैसा, पहचान या प्रोडक्शन सिस्टम की रक्षा करने वाली कुंजी के लिए उसे ऐसी जगह बनाएँ जहाँ निजी कुंजी बाहर न निकाली जा सके: हार्डवेयर सिक्योरिटी मॉड्यूल, की वॉल्ट, या अपने नियंत्रण वाला सर्वर।
हल किया हुआ उदाहरण: 2048-बिट RSA-OAEP जोड़ी
RSA-OAEP और 2048 बिट चुनकर कुंजी जोड़ी बनाएँ दबाने पर PKCS#8 की निजी कुंजी मिलती है, जिसका PEM -----BEGIN PRIVATE KEY----- से शुरू होता है, और SPKI की सार्वजनिक कुंजी, जिसका PEM -----BEGIN PUBLIC KEY----- से शुरू होता है। सार्वजनिक कुंजी के JWK में kty RSA है और e AQAB है, जो 65537 का Base64url है। उसका n मान 256 बाइट लंबा है, क्योंकि 2048 बिट 256 बाइट होते हैं।
अक्सर पूछे जाने वाले सवाल
क्या इस पेज पर वास्तविक वेबसाइट के लिए कुंजी बनाना सुरक्षित है?
सीखने और परीक्षण के लिए, हाँ। पैसा, पहचान या चालू सिस्टम की रक्षा करने वाली कुंजियों के लिए, नहीं: ब्राउज़र और उसके एक्सटेंशन दिखाए जाने के समय कुंजी पढ़ सकते हैं। ऐसी कुंजियाँ वहीं बनाएँ जहाँ निजी कुंजी बाहर न निकाली जा सके।
निजी कुंजी पुराने RSA PRIVATE KEY रूप में क्यों नहीं, PKCS#8 में क्यों है?
PKCS#8 (RFC 5958) कुंजी के भीतर एल्गोरिदम का नाम रखता है, इसलिए पढ़ने वाले को पता रहता है कि कुंजी किस काम की है। ज्यादातर लाइब्रेरी इसे स्वीकार करती हैं। अगर आपकी लाइब्रेरी पुराना रूप चाहती है, तो उसे openssl जैसे टूल से बदलें।
सार्वजनिक घातांक 65537 क्यों है?
यह 2 की 16वीं घात में 1 जोड़ने से बनता है, एक छोटी संख्या जिसमें सिर्फ दो बिट सेट हैं। इससे सार्वजनिक ऑपरेशन तेज होता है, और यही मान ज्यादातर प्रचलित लाइब्रेरी इस्तेमाल करती हैं, इसलिए पेज हर कुंजी में यही रखता है।
2048, 3072 या 4096 बिट में से कौन सा चुनें?
2048 बिट आज आम तौर पर न्यूनतम है। 3072 या 4096 तब चुनें जब कुंजी को कई सालों तक सुरक्षित रहना हो, और यह मानकर चलें कि बड़ी कुंजी से हस्ताक्षर करना या डिक्रिप्ट करना ज्यादा समय लेता है।
निजी कुंजी सार्वजनिक कुंजी से इतनी ज्यादा लंबी क्यों है?
सार्वजनिक कुंजी में सिर्फ मापांक और सार्वजनिक घातांक होता है। निजी कुंजी में दो अभाज्य संख्याएँ और वे मान भी होते हैं जो डिक्रिप्शन तेज करते हैं (RFC 8017, परिशिष्ट A.1.2), इसलिए वह कई गुना लंबी है।
क्या पेज बंद करने के बाद मेरी कुंजियाँ रखता है?
नहीं। कुंजियाँ सिर्फ खुले पेज की मेमोरी में रहती हैं, और पेज ब्राउज़र में कुछ नहीं सहेजता, लोकल स्टोरेज में भी नहीं। बंद करने से पहले कुंजियाँ कॉपी या डाउनलोड कर लें।
स्रोत
- RFC 8017 (अंग्रेजी में): PKCS #1 RSA Cryptography Specifications Version 2.2
- RFC 5958 (अंग्रेजी में): Asymmetric Key Packages (PKCS#8)
- RFC 7468 (अंग्रेजी में): Textual Encodings of PKIX, PKCS, and CMS Structures
- RFC 7517 (अंग्रेजी में): JSON Web Key (JWK)
- W3C (अंग्रेजी में): Web Cryptography API
आँकड़े और टेक्स्ट आखिरी बार मंगलवार, 10 नवंबर 2026 को जाँचे गए।