Crypto.createCipheriv() 'क्रिप्टो' मॉड्यूल से एक प्रोग्रामिंग इंटरफ़ेस है। यह दिए गए एल्गोरिथम, कुंजी, iv और फ़ंक्शन में दिए गए विकल्पों के अनुसार डिक्रिप्टर ऑब्जेक्ट बनाएगा और वापस करेगा।
सिंटैक्स
crypto.createDecipheriv(algorithm, key, iv, [options])
पैरामीटर
उपरोक्त पैरामीटर नीचे वर्णित हैं -
-
एल्गोरिदम - यह एल्गोरिथम के लिए इनपुट लेता है जिसका उपयोग सिफर बनाने के लिए किया जाएगा। कुछ संभावित मान हैं:aes192, aes256, आदि।
-
कुंजी - यह कच्ची कुंजी के लिए इनपुट लेता है जिसका उपयोग एल्गोरिथम और iv द्वारा किया जाता है। संभावित मान प्रकार के हो सकते हैं:स्ट्रिंग, बफर, TypedArray या DataView। यह वैकल्पिक रूप से गुप्त प्रकार की एक प्रकार की वस्तु हो सकती है।
-
iv - इनिशियलाइज़ेशन वेक्टर के रूप में भी जाना जाता है। यह पैरामीटर iv के लिए इनपुट लेता है जो सिफर को अनिश्चित और अद्वितीय बना देगा। इसे गुप्त रखने की आवश्यकता नहीं है। इसके संभावित मूल्य प्रकार हैं:स्ट्रिंग, बफर, टाइपेडएरे, डेटा व्यू। यदि सिफर की आवश्यकता न हो तो यह शून्य हो सकता है।
-
विकल्प - यह स्ट्रीम व्यवहार को नियंत्रित करने के लिए एक वैकल्पिक पैरामीटर है। यह वैकल्पिक नहीं है जब सिफर का उपयोग CCM या OCB मोड में किया जाता है (जैसे 'aes-256-ccm')
उदाहरण
नाम के साथ एक फाइल बनाएं – createDecipheriv.js और नीचे दिए गए कोड स्निपेट को कॉपी करें। फ़ाइल बनाने के बाद, इस कोड को चलाने के लिए निम्न कमांड का उपयोग करें जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है -
नोड createDecipheriv.js
Decipheriv.js बनाएं
// ईसीडीएच बनाने के लिए एक नोड डेमो प्रोग्राम// क्रिप्टो मॉड्यूलकोनस्ट क्रिप्टो आयात करना =आवश्यकता ('क्रिप्टो');//एल्गोरिदम कॉन्स्ट एल्गोरिदम को प्रारंभ करना ='एईएस-192-सीबीसी';// पासवर्डकॉन्स्ट को परिभाषित करना और प्रारंभ करना पासवर्ड ='123456789'// keyconst key को इनिशियलाइज़ करना =Crypto.scryptSync(password, 'tutorialsPoint', 24);// iv vectorconst को इनिशियलाइज़ करना iv =Buffer.alloc(16, 0);// उपरोक्त के साथ डिक्रिप्ट बनाना डिफाइन्ड पैरामीटर्सकॉन्स्ट डिक्रिप्ट =क्रिप्टो.क्रिएटडिसीफेरिव (एल्गोरिदम, की, iv);लेट डिक्रिप्टेड ='';// डेटाडेसिफर को पढ़ना और एन्क्रिप्ट करना। चंक =डिसिफर.रीड ())) {डिक्रिप्टेड + =चंक.टूस्ट्रिंग ('utf8'); }});//क्लोजिंग/एंड इवेंटडेसिफर.ऑन ('एंड', () => { कंसोल.लॉग ( डिक्रिप्टेड);});// एन्क्रिप्टेड डेटा जो डिक्रिप्टेड होने जा रहा है, कॉन्स्ट एन्क्रिप्टेड ='uqeQEkXy5dpJjQv+JDvMHw==';// डिक्रिप्टेड टेक्स्टडिसिफर को प्रिंट करना। राइट (एन्क्रिप्टेड, 'बेस 64'); डिक्रिप्टर.एंड (); कंसोल। लॉग ("पूर्ण...!");
आउटपुट
C:\home\node>> नोड createDecipheriv.jsCompleted... !tutorialsPoint
उदाहरण
आइए एक और उदाहरण देखें।
// ईसीडीएच बनाने के लिए एक नोड डेमो प्रोग्राम// क्रिप्टो मॉड्यूलकॉन्स्ट क्रिप्टो आयात करना =आवश्यकता ('क्रिप्टो');//एल्गोरिदम कॉन्स्ट एल्गोरिदम को प्रारंभ करना ='एईएस-256-सीबीसी';// पासवर्डकॉन्स्ट को परिभाषित करना और प्रारंभ करना पासवर्ड ='123456789'// keyconst key को इनिशियलाइज़ करना =Crypto.randomBytes(32);// iv वेक्टरकॉन्स्ट को इनिशियलाइज़ करना iv =Crypto.randomBytes(16);// डेटाफंक्शन को एन्क्रिप्ट करने के लिए फंक्शन को एन्क्रिप्ट करें एन्क्रिप्ट (टेक्स्ट) {// बनाना उपरोक्त परिभाषित मापदंडों के साथ सिफरलेट सिफर =क्रिप्टो.क्रिएटसिफरिव ('एईएस-256-सीबीसी', बफर.फ्रॉम (की), iv);//एन्क्रिप्टेड टेक्स्ट को अपडेट कर रहा है... एन्क्रिप्टेड होने दें =सिफर.अपडेट (टेक्स्ट); // concatenationencrypted =Buffer.concat ([एन्क्रिप्टेड, सिफर.फाइनल ()]) का उपयोग करना;// iv वेक्टर को एन्क्रिप्टेड डेटारिटर्न के साथ लौटाना {iv:iv.toString ('हेक्स'), एन्क्रिप्टेडडेटा:एन्क्रिप्टेड.toString (' hex')};}//डेटा फ़ंक्शन को डिक्रिप्ट करने के लिए डिक्रिप्ट फ़ंक्शन डिक्रिप्ट (पाठ) {चलो iv =Buffer.from(text.iv, 'hex'); let EncryptedText =Buffer.from(text.encryptedData, 'hex');// algo, key और ivlet decipher =Crypto.createDecipheriv('aes-256-cbc', Buffer.from(key), iv) से डिक्रिप्ट बनाना;// डिक्रिप्टेड टेक्स्टलेट को डिक्रिप्टेड अपडेट करना =decipher.update(encryptedText); decrypted =Buffer.concat([decrypted, decipher. final()]);// decryptionreturn decrypted.toString();}// नीचे दिए गए डेटा को एन्क्रिप्ट करने और आउटपुट को प्रिंट करने के बाद प्रतिक्रिया डेटा लौटा रहा है। आउटपुट =एन्क्रिप्ट ("ट्यूटोरियल पॉइंट में आपका स्वागत है!" );console.log("एन्क्रिप्टेड डेटा --", आउटपुट);//डिक्रिप्टेड dataconsole.log को प्रिंट करना ("डिक्रिप्टेड डेटा --", डिक्रिप्ट (आउटपुट));
आउटपुट
C:\home\node>> नोड createDecipheriv.jsएन्क्रिप्टेड डेटा -- { iv:'3fb2c84290e04d9bfb099bc65a7ac941',encryptedData:'4490777e90c5a78037cb92a99d561ae250562e26 Tuaf01c0191 - डिक्रिप्टेड डेटा -3f} में आपका स्वागत है