Crypto.createCipheriv () विधि पहले दिए गए कुंजी और प्राधिकरण कारक (iv) के लिए पारित एल्गोरिथम के अनुसार सिफर ऑब्जेक्ट बनाएगी और फिर वापस करेगी।
सिंटैक्स
crypto.createCipheriv(algorithm, key, iv, options)
पैरामीटर
उपरोक्त पैरामीटर नीचे वर्णित हैं -
-
एल्गोरिदम - यह एल्गोरिथम के लिए इनपुट लेता है जिसका उपयोग सिफर बनाने के लिए किया जाएगा। कुछ संभावित मान हैं:aes192, aes256, आदि।
-
कुंजी - यह कच्ची कुंजी के लिए इनपुट लेता है जिसका उपयोग एल्गोरिथम और iv द्वारा किया जाता है। संभावित मान प्रकार के हो सकते हैं:स्ट्रिंग, बफर, TypedArray या DataView। यह वैकल्पिक रूप से गुप्त प्रकार की एक प्रकार की वस्तु हो सकती है।
-
iv - इनिशियलाइज़ेशन वेक्टर के रूप में भी जाना जाता है। यह पैरामीटर iv के लिए इनपुट लेता है जो सिफर को अनिश्चित और अद्वितीय बना देगा। इसे गुप्त रखने की आवश्यकता नहीं है। इसके संभावित मूल्य प्रकार हैं:स्ट्रिंग, बफर, टाइपेडएरे, डेटा व्यू। यदि सिफर की आवश्यकता न हो तो यह शून्य हो सकता है।
-
विकल्प - यह स्ट्रीम व्यवहार को नियंत्रित करने के लिए एक वैकल्पिक पैरामीटर है। यह वैकल्पिक नहीं है जब सिफर का उपयोग CCM या OCB मोड में किया जाता है (जैसे 'aes-256-ccm')
उदाहरण
नाम के साथ एक फाइल बनाएं – createCipheriv.js और नीचे दिए गए कोड स्निपेट को कॉपी करें। फ़ाइल बनाने के बाद, इस कोड को चलाने के लिए निम्न कमांड का उपयोग करें जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है -
node createCipheriv.js
Cipheriv.js बनाएं
// A node demo program for creating the ECDH // Importing the crypto module const crypto = require('crypto'); // Initializing the algorithm const algorithm = 'aes-256-cbc'; // Initializing the key const key = crypto.randomBytes(32); // Initializing the iv vector const iv = crypto.randomBytes(16); // Creating the function to encrypt data function encrypt(text) { // Creating the cipher with the above defined parameters let cipher = crypto.createCipheriv( 'aes-256-cbc', Buffer.from(key), iv); let encrypted = cipher.update(text); encrypted = Buffer.concat([encrypted, cipher.final()]); // Returning iv and the encrypted data return { iv: iv.toString('hex'), encryptedData: encrypted.toString('hex') }; } // Printing public & private curve keys... var output = encrypt("TutorialsPoint"); console.log(output);
आउटपुट
C:\home\node>> node createCipheriv.js { iv: '3dd899aa441c00d4d8d2ff95abb2e684', encryptedData: 'b4985053bc1507fc25a4d99823dc8b03' }
उदाहरण
आइए एक और उदाहरण देखें।
// A node demo program for creating the ECDH // Importing the crypto module const crypto = require('crypto'); // Initializing the algorithm const algorithm = 'aes-192-cbc'; // Defining and initializing the password const password = '123456789' // Initializing the key const key = crypto.scryptSync(password, 'TutorialsPoint', 24); // Initializing the iv vector const iv = Buffer.alloc(16, 0); // Creating the cipher with the above defined parameters const cipher = crypto.createCipheriv(algorithm, key, iv); let encrypted = ''; // Reading and encrypting the data cipher.on('readable', () => { let chunk; while (null !== (chunk = cipher.read())) { encrypted += chunk.toString('base64'); } }); //Handling the closing/end event cipher.on('end', () => { console.log(encrypted); }); // Printing public & private curve keys... cipher.write('TutorialsPoint'); cipher.end(); console.log("Completed... !");
आउटपुट
C:\home\node>> node createCipheriv.js Completed... ! uqeQEkXy5dpJjQv+JDvMHw==