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

Node.js में cipher.final() विधि

विवरण

cipher.final() सिफर ऑब्जेक्ट के मान वाला एक बफर या स्ट्रिंग लौटाने के लिए उपयोग किया जाता है। यह क्रिप्टो मॉड्यूल के भीतर Cipher क्लास द्वारा प्रदान की गई अंतर्निहित विधियों में से एक है। यदि आउटपुट एन्कोडिंग निर्दिष्ट है, तो एक स्ट्रिंग लौटाई जाती है। यदि आउटपुट एन्कोडिंग निर्दिष्ट नहीं है तो एक बफर लौटाया जाता है। cipher.final विधि को एक से अधिक बार कॉल करने पर त्रुटि फेंकी जाएगी।

सिंटैक्स

cipher.final([outputEncoding])

पैरामीटर

  • outputEncoding - यह आउटपुट एन्कोडिंग को पैरामीटर के रूप में लेता है। इस पैरामीटर के लिए इनपुट प्रकार स्ट्रिंग है। संभावित इनपुट मान हैं hex, base64, आदि।

उदाहरण

cipherFinal.js नाम से एक फ़ाइल बनाएं और नीचे दिए गए कोड स्निपेट को कॉपी करें। फ़ाइल बनाने के बाद, इस कोड को चलाने के लिए निम्न कमांड का उपयोग करें:

node cipherFinal.js

cipherFinal.js

// cipher.final() विधि के उपयोग को प्रदर्शित करने का उदाहरण // क्रिप्टो मॉड्यूल आयात करें const crypto = require('crypto'); // AES एल्गोरिदम इनिशियलाइज़ करें const algorithm = 'aes-192-cbc'; // कुंजी उत्पन्न करने के लिए उपयोग किए जाने वाले पासवर्ड को इनिशियलाइज़ करें const password = '12345678'; // सिफर ऑब्जेक्ट के लिए कुंजी प्राप्त करें const key = crypto.scryptSync(password, 'salt', 24); // स्टैटिक iv इनिशियलाइज़ करें const iv = Buffer.alloc(16, 0); // सिफर प्राप्त करने के लिए सिफर ऑब्जेक्ट इनिशियलाइज़ करें const cipher = crypto.createCipheriv(algorithm, key, iv); const cipher2 = crypto.createCipheriv(algorithm, key, iv); // आउटपुट एन्कोडिंग परिभाषित होने के कारण स्ट्रिंग मान प्राप्त करें let hexValue = cipher.final('hex'); let base64Value = cipher2.final('base64'); // परिणाम प्रिंट करें... console.log("Hex String:- " + hexValue); console.log("Base64 String:- " + base64Value);

आउटपुट

C:\home\node>> node cipherFinal.js Hex String:- 8d11772fce59f08e7558db5bf17b3112 Base64 String:- jRF3L85Z8I51WNtb8XsxEg==

उदाहरण

एक और उदाहरण देखते हैं।

// cipher.final() विधि के उपयोग को प्रदर्शित करने का उदाहरण // क्रिप्टो मॉड्यूल आयात करें const crypto = require('crypto'); // AES एल्गोरिदम इनिशियलाइज़ करें const algorithm = 'aes-192-cbc'; // कुंजी उत्पन्न करने के लिए उपयोग किए जाने वाले पासवर्ड को इनिशियलाइज़ करें const password = '12345678'; // सिफर ऑब्जेक्ट के लिए कुंजी प्राप्त करें const key = crypto.scryptSync(password, 'salt', 24); crypto.scrypt(password, 'salt', 24,   { N: 512 }, (err, key) => {     if (err) throw err;     // स्टैटिक iv इनिशियलाइज़ करें     const iv = Buffer.alloc(16, 0);     // सिफर प्राप्त करने के लिए सिफर ऑब्जेक्ट इनिशियलाइज़ करें     const cipher = crypto.createCipheriv(algorithm, key, iv);     // आउटपुट एन्कोडिंग null होने के कारण बफर मान प्राप्त करें     let hexValue = cipher.final();     let base64Value = cipher.final('base64');     // परिणाम प्रिंट करें...     console.log("Buffer:- " + hexValue);     console.log("Base64 String:- " + base64Value); });

आउटपुट

C:\home\node>> node cipherFinal.js internal/crypto/cipher.js:164     const ret = this._handle.final();                         ^ Error: Unsupported state     at Cipheriv.final (internal/crypto/cipher.js:164:28)     at Object. (/home/node/test/cipher.js:22:26)     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)

उपरोक्त उदाहरण में, हमें त्रुटि मिल रही है क्योंकि हमने पहले ही उस कुंजी के लिए सिफर प्राप्त कर लिया है। चूंकि यह एक फाइनल विधि है, यह त्रुटि दे रही है जब हम उसी कुंजी के लिए फिर से सिफर ढूंढने का प्रयास करते हैं।

  1. - Node.js में process.env प्रॉपर्टी

    Node.js में process.env प्रॉपर्टी का उपयोग यूज़र एनवायरनमेंट ऑब्जेक्ट प्राप्त करने के लिए किया जाता है। इस ऑब्जेक्ट में उस एनवायरनमेंट के बारे में सभी जानकारी होती है जिस पर यह कमांड निष्पादित की जा रही है। सिंटैक्स process.env पैरामीटर्स चूंकि यह यूज़र एनवायरनमेंट के लिए एक ऑब्जेक्ट वापस करता है

  1. - Node.js में process.argv0 प्रॉपर्टी

    Node.js में process.argv0 प्रॉपर्टी का उपयोग argv[0] के मूल मान की रीड-ओनली कॉपी स्टोर करने के लिए किया जाता है जो Node.js एप्लिकेशन शुरू होने पर पास किया जाता है। सिंटैक्स process.argv0 पैरामीटर्स चूंकि यह argv[0] के स्टोर किए गए मान की केवल रीड-ओनली कॉपी वापस करता है। इसे उपयोगकर्ता से किसी इनप

  1. - Node.js में process.argv प्रॉपर्टी

    Node.js में process.argv प्रॉपर्टी का उपयोग उन सभी कमांड-लाइन आर्गुमेंट्स को वापस करने के लिए किया जाता है जो Node.js प्रोसेस लॉन्च होने पर पास किए गए थे। पहला एलिमेंट हमेशा process.execPath के समान मान रखता है। सिंटैक्स process.argv पैरामीटर्स चूंकि यह Node.js प्रोसेस से पहले पास किए गए सभी कमां