"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट और पायथन का उपयोग करके आरएसए कुंजी कैसे उत्पन्न करें

जावास्क्रिप्ट और पायथन का उपयोग करके आरएसए कुंजी कैसे उत्पन्न करें

2024-12-22 को प्रकाशित
ब्राउज़ करें:302

How to Generate RSA Key Using JavaScript and Python

आज के डिजिटल युग में, संवेदनशील जानकारी की सुरक्षा सुनिश्चित करना सर्वोपरि है। आरएसए, सबसे व्यापक रूप से उपयोग की जाने वाली एन्क्रिप्शन तकनीकों में से एक, सुरक्षित संचार और डेटा सुरक्षा की अनुमति देकर इसे प्राप्त करने में मदद करती है। यदि आप एक नौसिखिया हैं और सीखना चाहते हैं कि आरएसए कुंजी जोड़े कैसे बनाएं, तो यह ट्यूटोरियल आपको जावास्क्रिप्ट और पायथन दोनों में प्रक्रिया के माध्यम से मार्गदर्शन करेगा।

आरएसए क्या है?

आरएसए (रिवेस्ट-शमीर-एडलमैन) एक सार्वजनिक-कुंजी क्रिप्टोसिस्टम है जिसका उपयोग सुरक्षित डेटा ट्रांसमिशन के लिए किया जाता है। यह दो कुंजियों का उपयोग करता है:

सार्वजनिक कुंजी: संदेशों को एन्क्रिप्ट करने या डिजिटल हस्ताक्षर सत्यापित करने के लिए उपयोग किया जाता है।
निजी कुंजी: संदेशों को डिक्रिप्ट करने या दस्तावेजों पर हस्ताक्षर करने के लिए उपयोग किया जाता है।
कुंजियाँ गणितीय रूप से जुड़ी हुई हैं, लेकिन सार्वजनिक कुंजी से निजी कुंजी प्राप्त करना लगभग असंभव है, जिससे आरएसए एक अत्यधिक सुरक्षित एन्क्रिप्शन विधि बन जाती है।

आरएसए का उपयोग क्यों करें?

डेटा एन्क्रिप्शन: संचार को सुरक्षित करने के लिए संवेदनशील जानकारी एन्क्रिप्ट करें।
डिजिटल हस्ताक्षर: संदेशों या दस्तावेजों की प्रामाणिकता सत्यापित करें।
प्रमाणीकरण: सुरक्षित प्रमाणीकरण तंत्र प्रदान करें।
अब, आइए जानें कि दो लोकप्रिय प्रोग्रामिंग भाषाओं जावास्क्रिप्ट और पायथन का उपयोग करके आरएसए कुंजी कैसे उत्पन्न करें।

ओपनएसएसएल (कमांड लाइन) का उपयोग करके आरएसए कुंजी उत्पन्न करना

कोड में गोता लगाने से पहले, आप ओपनएसएसएल का उपयोग करके आसानी से आरएसए कुंजी उत्पन्न कर सकते हैं। ओपनएसएसएल क्रिप्टोग्राफ़िक संचालन के लिए व्यापक रूप से उपयोग किया जाने वाला उपकरण है।

2048-बिट आरएसए निजी कुंजी उत्पन्न करें:

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048

सार्वजनिक कुंजी निकालें:

openssl rsa -pubout -in private_key.pem -out public_key.pem

यह दो फ़ाइलें उत्पन्न करेगा: Private_key.pem (निजी कुंजी) और public_key.pem (सार्वजनिक कुंजी)।

जावास्क्रिप्ट में आरएसए कुंजी उत्पन्न करना

जावास्क्रिप्ट में, आप RSA कुंजी उत्पन्न करने के लिए Node.js के क्रिप्टो मॉड्यूल का उपयोग कर सकते हैं। यहां चरण-दर-चरण मार्गदर्शिका दी गई है।

चरण-दर-चरण मार्गदर्शिका (जावास्क्रिप्ट)
अपना वातावरण सेट करें: सुनिश्चित करें कि आपके सिस्टम पर Node.js स्थापित है। यदि नहीं, तो आप इसे nodejs.org से डाउनलोड कर सकते हैं।

आरएसए कुंजी जोड़ी उत्पन्न करें: Node.js क्रिप्टो मॉड्यूल प्रदान करता है, जो क्रिप्टोग्राफ़िक संचालन के लिए अंतर्निहित फ़ंक्शन प्रदान करता है।

const { generateKeyPairSync } = require('crypto');

const { publicKey, privateKey } = generateKeyPairSync('rsa', {
  modulusLength: 2048,
  publicKeyEncoding: {
    type: 'spki',
    format: 'pem'
  },
  privateKeyEncoding: {
    type: 'pkcs8',
    format: 'pem'
  }
});

console.log('Public Key:\n', publicKey);
console.log('Private Key:\n', privateKey);

प्रमुख बिंदु:
मापांक लंबाई: 2048 यह सुनिश्चित करता है कि कुंजी 2048 बिट लंबी है।
उत्पन्न सार्वजनिक और निजी कुंजियाँ PEM प्रारूप में लौटाई जाती हैं, जिसका व्यापक रूप से क्रिप्टोग्राफ़िक कुंजियाँ संग्रहीत करने के लिए उपयोग किया जाता है।
इस स्क्रिप्ट के साथ, अब आप जावास्क्रिप्ट में आरएसए कुंजी उत्पन्न कर सकते हैं और उन्हें एन्क्रिप्शन, डिजिटल हस्ताक्षर या सुरक्षित संचार के लिए उपयोग कर सकते हैं।

पायथन में आरएसए कुंजी उत्पन्न करना

पायथन आरएसए कुंजी उत्पन्न करने के लिए क्रिप्टोग्राफी नामक एक उत्कृष्ट लाइब्रेरी प्रदान करता है। पायथन में आरएसए कुंजी उत्पन्न करने के लिए नीचे दिए गए चरणों का पालन करें।

चरण-दर-चरण मार्गदर्शिका (पायथन)
क्रिप्टोग्राफ़ी लाइब्रेरी स्थापित करें: यदि आपके पास क्रिप्टोग्राफी लाइब्रेरी स्थापित नहीं है, तो आप इसे पाइप का उपयोग करके आसानी से स्थापित कर सकते हैं:

pip install cryptography

आरएसए कुंजी उत्पन्न करें: लाइब्रेरी स्थापित करने के बाद, अपनी आरएसए कुंजी जोड़ी उत्पन्न करने के लिए निम्नलिखित पायथन स्क्रिप्ट का उपयोग करें।

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization

# Generate a private key
private_key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048,
    backend=default_backend()
)

# Save the private key in PEM format
with open("private_key.pem", "wb") as private_file:
    private_file.write(
        private_key.private_bytes(
            encoding=serialization.Encoding.PEM,
            format=serialization.PrivateFormat.TraditionalOpenSSL,
            encryption_algorithm=serialization.NoEncryption()
        )
    )

# Generate the public key from the private key
public_key = private_key.public_key()

# Save the public key in PEM format
with open("public_key.pem", "wb") as public_file:
    public_file.write(
        public_key.public_bytes(
            encoding=serialization.Encoding.PEM,
            format=serialization.PublicFormat.SubjectPublicKeyInfo
        )
    )

print("Keys generated and saved as PEM files!")

प्रमुख बिंदु:
यह स्क्रिप्ट 2048 बिट्स की लंबाई और 65537 के सार्वजनिक घातांक (आरएसए के लिए एक सामान्य विकल्प) के साथ एक निजी कुंजी उत्पन्न करती है।
आसान उपयोग के लिए निजी और सार्वजनिक कुंजियाँ PEM प्रारूप में संग्रहीत की जाती हैं।
आउटपुट को समझना
चाहे आप जावास्क्रिप्ट या पायथन में काम कर रहे हों, आउटपुट आपकी आरएसए कुंजी जोड़ी होगी:

निजी कुंजी: इस कुंजी का उपयोग डेटा को डिक्रिप्ट करने या दस्तावेजों पर हस्ताक्षर करने के लिए किया जाता है। इसे गोपनीय रखा जाना चाहिए।
सार्वजनिक कुंजी: इस कुंजी का उपयोग डेटा एन्क्रिप्ट करने या हस्ताक्षर सत्यापित करने के लिए किया जाता है। इसे दूसरों के साथ सुरक्षित रूप से साझा किया जा सकता है।
PEM प्रारूप में RSA निजी कुंजी इस प्रकार दिखती है:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA...
-----END RSA PRIVATE KEY-----

आरएसए कुंजियों का व्यावहारिक उपयोग

संदेशों को एन्क्रिप्ट और डिक्रिप्ट करना: सार्वजनिक कुंजी का उपयोग करके एक संदेश को एन्क्रिप्ट करें और संबंधित निजी कुंजी के साथ इसे डिक्रिप्ट करें।
दस्तावेजों पर हस्ताक्षर करना और सत्यापन करना: निजी कुंजी के साथ एक दस्तावेज़ पर हस्ताक्षर करें, और सार्वजनिक कुंजी वाला कोई भी व्यक्ति हस्ताक्षर की प्रामाणिकता को सत्यापित कर सकता है।

निष्कर्ष

सुरक्षित संचार, एन्क्रिप्शन और डिजिटल हस्ताक्षर के लिए आरएसए कुंजी पीढ़ी आवश्यक है। इस गाइड में, हमने दिखाया कि जावास्क्रिप्ट और पायथन दोनों में आरएसए कुंजी जोड़े कैसे उत्पन्न करें। Node.js क्रिप्टो मॉड्यूल और पायथन की क्रिप्टोग्राफी लाइब्रेरी का उपयोग करके, आप आसानी से अपने अनुप्रयोगों के लिए सुरक्षित RSA कुंजी जोड़े उत्पन्न कर सकते हैं।

चाबी छीनना:

आरएसए में चाबियों की एक जोड़ी शामिल होती है: एक सार्वजनिक कुंजी और एक निजी कुंजी।
जावास्क्रिप्ट और पायथन में आरएसए कुंजी उत्पन्न करने की प्रक्रिया सही पुस्तकालयों के साथ सीधी है।
इन कुंजियों का उपयोग विभिन्न सुरक्षा उद्देश्यों, जैसे एन्क्रिप्शन, प्रमाणीकरण और डिजिटल हस्ताक्षर के लिए किया जा सकता है।
इस गाइड का पालन करके, आप अपनी परियोजनाओं में मजबूत सुरक्षा सुविधाओं को लागू करना शुरू कर सकते हैं। हैप्पी कोडिंग!

पूछे जाने वाले प्रश्न

प्रश्न: मजबूत एन्क्रिप्शन के लिए आदर्श आरएसए कुंजी आकार क्या है?
उत्तर: आमतौर पर 2048-बिट कुंजी का उपयोग किया जाता है, लेकिन मजबूत सुरक्षा के लिए, 4096-बिट कुंजी की अनुशंसा की जाती है।

प्रश्न: क्या मैं अपनी निजी कुंजी साझा कर सकता हूं?
उत्तर: नहीं, निजी कुंजी हमेशा गोपनीय रहनी चाहिए। केवल सार्वजनिक कुंजी साझा की जा सकती है।

प्रश्न: पीईएम प्रारूप क्या है?
उत्तर: पीईएम (गोपनीयता-संवर्धित मेल) एक बेस64-एन्कोडेड प्रारूप है जिसका उपयोग क्रिप्टोग्राफ़िक कुंजियों और प्रमाणपत्रों को संग्रहीत करने के लिए किया जाता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/shubhamchan/how-to-generate-rsa-key-using-javascript-and-python-2l6h?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3