विवरण
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)
उपरोक्त उदाहरण में, हमें त्रुटि मिल रही है क्योंकि हमने पहले ही उस कुंजी के लिए सिफर प्राप्त कर लिया है। चूंकि यह एक फाइनल विधि है, यह त्रुटि दे रही है जब हम उसी कुंजी के लिए फिर से सिफर ढूंढने का प्रयास करते हैं।