- होम
- एन्क्रिप्शन
- RSA एन्क्रिप्ट / डिक्रिप्ट
RSA एन्क्रिप्शन और डिक्रिप्शन
RSA पब्लिक कुंजी से एन्क्रिप्ट और प्राइवेट कुंजी से डिक्रिप्ट करें (OAEP या PKCS#1 v1.5)।
openssl pkeyutl -decrypt -inkey private.pem -in ciphertext.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256किसी की RSA पब्लिक कुंजी (या उसके सर्टिफ़िकेट) से कोई छोटा सीक्रेट एन्क्रिप्ट करें, ताकि सिर्फ़ प्राइवेट कुंजी रखने वाला ही उसे पढ़ सके, या अपनी प्राइवेट कुंजी से सिफ़रटेक्स्ट डिक्रिप्ट करें। SHA-256 वाला OAEP (सुझाया गया), SHA-1 वाला OAEP या PKCS#1 v1.5 चुनें; नतीजा Base64 या hex में आता है और OpenSSL के साथ काम करता है। सब कुछ आपके ब्राउज़र में चलता है, इसलिए कुंजियाँ और संदेश कभी आपके डिवाइस से बाहर नहीं जाते; यह मुफ़्त है और साइन-अप की ज़रूरत नहीं।
RSA से कैसे एन्क्रिप्ट और डिक्रिप्ट करें
- “एन्क्रिप्ट” या “डिक्रिप्ट” चुनें, फिर कुंजी पेस्ट करें या कुंजी फ़ाइल खोलें: एन्क्रिप्ट करने के लिए पब्लिक कुंजी या सर्टिफ़िकेट, डिक्रिप्ट करने के लिए प्राइवेट कुंजी (PKCS#8 या PKCS#1)।
- पैडिंग चुनें: OAEP · SHA-256, जब तक दूसरी तरफ़ को कुछ और न चाहिए।
- संदेश लिखें, या सिफ़रटेक्स्ट Base64 या hex में पेस्ट करें। लिखते-लिखते नतीजा दिखने लगता है।
- नतीजा कॉपी करें, या OpenSSL के लिए सिफ़रटेक्स्ट .bin फ़ाइल के रूप में डाउनलोड करें।
सुविधाएँ
- पब्लिक कुंजी, सर्टिफ़िकेट या प्राइवेट कुंजी के पब्लिक हिस्से से एन्क्रिप्ट करें; प्राइवेट कुंजी से डिक्रिप्ट करें
- SHA-256 वाला OAEP (डिफ़ॉल्ट), SHA-1 वाला OAEP, या PKCS#1 v1.5
- PEM या DER में कुंजियाँ: SPKI, PKCS#1, PKCS#8 और X.509 सर्टिफ़िकेट, 16384 बिट तक
- सिफ़रटेक्स्ट Base64 या hex में, या .bin फ़ाइल के रूप में; पेस्ट किया Base64 या hex, या खोली गई .bin फ़ाइल डिक्रिप्ट करता है
- दिखाता है कि कुंजी और पैडिंग कितने बाइट एन्क्रिप्ट कर सकते हैं, और मेल खाता openssl pkeyutl कमांड
- आपके ब्राउज़र में WebAssembly वर्कर में चलता है
क्या यह निजी है?
हाँ। एन्क्रिप्शन और डिक्रिप्शन आपके ब्राउज़र में, एक WebAssembly वर्कर में होते हैं; कुंजियाँ, संदेश और सिफ़रटेक्स्ट कभी अपलोड या सेव नहीं होते।
अक्सर पूछे जाने वाले सवाल
संदेश कितना लंबा हो सकता है?
RSA एक ब्लॉक एन्क्रिप्ट करता है। 2048-बिट कुंजी के साथ यह OAEP SHA-256 में 190 बाइट, OAEP SHA-1 में 214 और PKCS#1 v1.5 में 245 बाइट तक है; बड़ी कुंजियाँ इससे ज़्यादा की अनुमति देती हैं। इससे लंबी किसी भी चीज़ के लिए डेटा को सिमेट्रिक सिफ़र से एन्क्रिप्ट करें, या “फ़ाइल एन्क्रिप्शन” टूल इस्तेमाल करें।
सिफ़रटेक्स्ट हर बार अलग क्यों होता है?
हर पैडिंग एन्क्रिप्ट करने से पहले रैंडम बाइट जोड़ती है, इसलिए एक ही संदेश से हर बार नया सिफ़रटेक्स्ट बनता है। ऐसा जानबूझकर है, और उनमें से हर एक डिक्रिप्ट होकर वही संदेश देता है।
क्या यह OpenSSL के साथ काम करता है?
हाँ। यहाँ बना सिफ़रटेक्स्ट openssl pkeyutl -decrypt -inkey private.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 (या rsa_padding_mode:pkcs1) से डिक्रिप्ट होता है, और openssl pkeyutl -encrypt से बने सिफ़रटेक्स्ट यहाँ डिक्रिप्ट होते हैं। दोनों तरफ़ एक ही पैडिंग इस्तेमाल करें।
कौन-से कुंजी फ़ॉर्मैट इस्तेमाल कर सकते हैं?
PEM पब्लिक कुंजियाँ (BEGIN PUBLIC KEY या BEGIN RSA PUBLIC KEY), सर्टिफ़िकेट, और PKCS#8 (BEGIN PRIVATE KEY) या PKCS#1 (BEGIN RSA PRIVATE KEY) में बिना एन्क्रिप्शन वाली प्राइवेट कुंजियाँ, DER फ़ाइलों के रूप में भी। पासवर्ड से सुरक्षित और OpenSSH कुंजियों को पहले बदलना पड़ता है; टूल बताता है कैसे।
डिक्रिप्शन फ़ेल क्यों होता है?
आमतौर पर पैडिंग या कुंजी की वजह से। वही पैडिंग इस्तेमाल करके डिक्रिप्ट करें जिससे एन्क्रिप्ट किया गया था, और उस प्राइवेट कुंजी से जो इस्तेमाल हुई पब्लिक कुंजी की जोड़ीदार है; टूल जानबूझकर इनमें फ़र्क नहीं बताता, इसलिए दूसरी पैडिंग आज़माएँ। सिफ़रटेक्स्ट हमेशा कुंजी जितना लंबा होता है (2048-बिट कुंजी के लिए 256 बाइट), इसलिए छोटा सिफ़रटेक्स्ट कॉपी करते समय कट गया है।