Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

क्रिप्टो.पब्लिकडिक्रिप्ट () Node.js में विधि

<घंटा/>

क्रिप्टो.पब्लिकडिक्रिप्ट () का उपयोग सार्वजनिक कुंजी के साथ बफर में दिए गए डेटा को डिक्रिप्ट करने के लिए किया जाता है। इस बफ़र को संबंधित निजी कुंजी यानी क्रिप्टो.प्राइवेटएन्क्रिप्ट () विधि का उपयोग करके एन्क्रिप्ट किया गया था।

सिंटैक्स

crypto.publicDecrypt(key, buffer)

पैरामीटर

उपरोक्त पैरामीटर नीचे वर्णित हैं -

  • कुंजी - इसमें निम्न प्रकार के 5 प्रकार के डेटा हो सकते हैं - ऑब्जेक्ट, स्ट्रिंग, बफर या कीऑब्जेक्ट।

    • पासफ़्रेज़ - यह निजी कुंजी के लिए एक वैकल्पिक पासफ़्रेज़ है।

    • पैडिंग - यह क्रिप्टो.कॉन्स्टेंट में परिभाषित एक वैकल्पिक मान है।

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

  • बफर - इस फ़ील्ड में एन्क्रिप्ट की जाने वाली डेटा सामग्री है। संभावित बफर प्रकार हैं:स्ट्रिंग, टाइप्डअरे, बफर, ऐरेबफर, डेटा व्यू।

उदाहरण

नाम के साथ एक फाइल बनाएं – publicDecrypt.js और नीचे दिए गए कोड स्निपेट को कॉपी करें। फ़ाइल बनाने के बाद, इस कोड को चलाने के लिए निम्न कमांड का उपयोग करें जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है -

नोड publicDecrypt.js

publicDecrypt.js

//crypt.publicDecrypt डेमो उदाहरण//क्रिप्टो, एफएस और पथ मॉड्यूलवर क्रिप्टो आयात करना =आवश्यकता ('क्रिप्टो'); var fs =आवश्यकता ('fs'); const पथ =आवश्यकता ('पथ');/ / कीज़ फंक्शन जेनरेट करने के लिए नीचे फंक्शन बनाना कीफाइल्स () {कॉन्स्ट कीपेयर =क्रिप्टो.जनरेटकीपेयरसिंक ('आरएसए', {मॉड्यूलस लेंथ:520, पब्लिककेएनकोडिंग:{टाइप:'स्पकी', फॉर्मेट:'पेम'}, प्राइवेटकीएन्कोडिंग:{ टाइप:'पीकेसीएस 8 ', प्रारूप:'पेम', सिफर:'एईएस-256-सीबीसी', पासफ्रेज:''}}); // नीचे दिए गए नाम के साथ सार्वजनिक कुंजी फ़ाइल बनाना fs.writeFileSync("public_key", keyPair.publicKey); fs.writeFileSync("private_key", keyPair.privateKey);}// कॉलिंग जनरेट कीज़ मेथडजेनरेटकीफाइल्स ();// प्राइवेट और पब्लिक कीवर को पढ़ना प्राइवेट =fs.readFileSync('private_key');var public =fs.readFileSync(' public_key'); // मूल डेटावर डेटा को परिभाषित करना ='ट्यूटोरियल पॉइंट में आपका स्वागत है'; कंसोल.लॉग ("मूल डेटा है:" + डेटा); // निजी कीएन्क्रिप्टेड का उपयोग करके डेटा को एन्क्रिप्ट करना =क्रिप्टो.प्राइवेटएन्क्रिप्ट (निजी, बफर। से (डेटा, 'utf8')).toString('base64');// डेटा को डिक्रिप्ट करना publicKeyoriginalData =Crypto.publicDecrypt(public, Buffer.from(encrypted, 'base64'));console.log();// एन्क्रिप्टेड संदेश प्रिंट करना। 

आउटपुट

C:\home\node>> नोड publicDecrypt.jsमूल डेटा है:TutorialsPoint में आपका स्वागत है निजी कुंजी के साथ एन्क्रिप्ट किया गया:EFBihrKebXb0gfCF7nTnw82yXpToH5eVBpLc8O5QL/ZgfZ/qJT5I/BejSMwV4NFCp+DeFZPW में आपका स्वागत है। 

उदाहरण

आइए एक और उदाहरण देखें।

//crypt.publicDecrypt डेमो उदाहरण// क्रिप्टो और एफएस मॉड्यूलवर क्रिप्टो आयात करना =आवश्यकता ('क्रिप्टो'); var fs =आवश्यकता ('fs'); // keyfunction उत्पन्न करने के लिए नीचे फ़ंक्शन बनाना कीफाइल() { const keyPair =Crypto.generateKeyPairSync('rsa', {modulusLength:520, publicKeyEncoding:{ type:'spki', format:'pem'}, PrivateKeyEncoding:{ type:'pkcs8', format:'pem', सिफर:'aes' -256-cbc', पासफ़्रेज़:'' } }); // नीचे दिए गए नाम के साथ सार्वजनिक कुंजी फ़ाइल बनाना fs.writeFileSync("public_key", keyPair.publicKey); fs.writeFileSync("private_key", keyPair.privateKey);}// कॉलिंग जनरेट कीज़ मेथडजेनरेटकीफाइल्स ();//निजी की-प्राइवेटकी पढ़ना =fs.readFileSync('private_key').toString();var buffer =Buffer.from( 'ट्यूटोरियल्सपॉइंट' में आपका स्वागत है', 'utf8');console.log("एन्क्रिप्शन से पहले डेटा बफर")console.log(buffer);// बफर टेक्स्टएनक्रिप्टेड को एन्क्रिप्ट करना =क्रिप्टो.प्राइवेटएन्क्रिप्ट(प्राइवेटकी, बफर);// डेटा प्रिंट करना एन्क्रिप्शन के बाद कंसोल.लॉग ("एन्क्रिप्शन के बाद डेटा:"); कंसोल। क्रिप्टो.पब्लिकडिक्रिप्ट (पब्लिककी, एन्क्रिप्टेड);// मूल सामग्री को प्रिंट करना कंसोल.लॉग("डिक्रिप्शन के बाद डेटा:");console.log(decryptedData);

आउटपुट

C:\home\node>> नोड publicDecrypt.jsएन्क्रिप्शन से पहले डेटा बफर<बफर 57 65 6c 63 6f 6d 65 20 74 6f 20 54 75 74 6f 72 69 61 6c 73 50 6f 696e 74>एन्क्रिप्शन के बाद डेटा:<बफर a6 9d e3 86 9f 3f 4b b9 3f f7 a6 9c 7c 16 0f 04 b9 c4 16 0b 08 f1 0639 de 32 75 7c 26 88 fa 49 bd 31 6b 4b 4d 02 e6 87 56 ee 9c 95 53 10 8f 28 49f5। ..>डिक्रिप्शन के बाद डेटा:<बफर 57 65 6c 63 6f 6d 65 20 74 6f 20 54 75 74 6f 72 69 61 6c 73 50 6f 696e 74>

  1. क्रिप्टो.प्राइवेटएन्क्रिप्ट () Node.js में विधि

    Crypto.privateEncrypt() का उपयोग फ़ंक्शन में दिए गए निजी कुंजी पैरामीटर का उपयोग करके दी गई डेटा सामग्री को एन्क्रिप्ट करने के लिए किया जाता है। सिंटैक्स crypto.privateEncrypt(privateKey, बफर) पैरामीटर उपरोक्त पैरामीटर नीचे वर्णित हैं - निजी कुंजी - इसमें निम्नलिखित डेटा प्रकार हो सकते हैं - ऑब

  1. क्रिप्टो.प्राइवेटडिक्रिप्ट () Node.js में विधि

    क्रिप्टो.प्राइवेटडिक्रिप्ट () का उपयोग पैरामीटर में पारित एक निजी कुंजी का उपयोग करके दी गई डेटा सामग्री को डिक्रिप्ट करने के लिए किया जाता है जिसे पहले क्रिप्टो.पब्लिकएनक्रिप्ट () विधि के साथ संबंधित सार्वजनिक कुंजी का उपयोग करके एन्क्रिप्ट किया गया था। सिंटैक्स crypto.privateDecrypt(privateKey, बफ

  1. क्रिप्टो.getHashes () Node.js में विधि

    क्रिप्टो.getHashes() विधि एक सरणी लौटाएगी जिसमें सभी समर्थित हैश एल्गोरिदम के नाम होंगे। क्रिप्टो पैकेज में हैश एल्गोरिदम की एक विशाल सूची है जिसका हम उपयोग कर सकते हैं। लेकिन सबसे अधिक इस्तेमाल किया जाने वाला सिफर एल्गोरिथम MD5 - Message-Digest Algorithm5 है। सिंटैक्स crypto.getHashes() पैरामीटर च