विवरण
crypto.createDiffieHellmanGroup() का उपयोग एक पूर्वनिर्धारित DiffieHellmanGroup कुंजी विनिमय ऑब्जेक्ट बनाने के लिए किया जाता है। समर्थित कुछ DiffieHellmanGroups हैं: modp1, modp2, modp5, modp 14, modp16, modp17 आदि। इस विधि का लाभ यह है कि पार्टियों को समूह मॉड्यूलस उत्पन्न या विनिमय करने की आवश्यकता नहीं होती है, जिससे प्रसंस्करण समय की बचत होती है।
सिंटैक्स
crypto.getDiffieHelmmanGroup(groupName)
पैरामीटर
groupName - यह समूह नाम के लिए इनपुट लेता है। इनपुट 'स्ट्रिंग' प्रकार का है।
उदाहरण
getdiffieHellman.js नाम से एक फ़ाइल बनाएं और नीचे दिए गए कोड स्निपेट को कॉपी करें। फ़ाइल बनाने के बाद, इस कोड को चलाने के लिए निम्न कमांड का उपयोग करें:
node getDiffieHellman.js
getdiffieHellman.js
// crypto.getDiffieHellman() डेमो उदाहरण // क्रिप्टो मॉड्यूल आयात करें const crypto = require('crypto'); const server = crypto.getDiffieHellman('modp1'); const client = crypto.getDiffieHellman('modp1'); // DiffieHellman मान प्रिंट करें console.log(server); console.log(client); // सार्वजनिक और निजी कुंजियाँ उत्पन्न करें server.generateKeys(); client.generateKeys(); // सार्वजनिक कुंजी प्राप्त करें const serverSecret = server.computeSecret(client.getPublicKey(), null, 'hex'); const clientSecret = client.computeSecret(server.getPublicKey(), null, 'hex'); /* aliceSecret और bobSecret समान होने चाहिए */ console.log(serverSecret === clientSecret);आउटपुट
C:\home\node>> node getDiffieHellman.js DiffieHellmanGroup { _handle: { verifyError: [Getter] }, verifyError: 0 } DiffieHellmanGroup { _handle: { verifyError: [Getter] }, verifyError: 0 } trueउदाहरण
एक और उदाहरण देखते हैं।
// crypto.getDiffieHellman() डेमो उदाहरण // क्रिप्टो मॉड्यूल आयात करें const crypto = require('crypto'); const dh1 = crypto.getDiffieHellman('modp17'); const dh2 = crypto.getDiffieHellman('modp14'); // सार्वजनिक और निजी कुंजियाँ उत्पन्न करें dh1.generateKeys(); dh2.generateKeys(); // सार्वजनिक कुंजी प्राप्त करें const dh1Key = dh1.computeSecret(dh2.getPublicKey(), null, 'hex'); const dh2Key = dh2.computeSecret(dh1.getPublicKey(), null, 'hex'); /* aliceSecret और bobSecret समान होने चाहिए */ console.log(dh1Key === dh2Key);आउटपुट
C:\home\node>> node getDiffieHellman.js internal/crypto/diffiehellman.js:102 const ret = this._handle.computeSecret(toBuf(key, inEnc)); ^ Error: Supplied key is too large at DiffieHellmanGroup.dhComputeSecret [as computeSecret] (internal/crypto/diffiehellman.js:102:28) at Object.(/home/node/test/getDiffieHellman .js:15:20) at Module._compile (internal/modules/cjs/loader.js:778:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) at Function.Module.runMain (internal/modules/cjs/loader.js:831:12) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)