Node.js क्रिप्टो मॉड्यूल क्रिप्टोग्राफ़िक संचालन करने की प्रक्रिया को सुव्यवस्थित करता है। यहाँ इसका उपयोग कैसे करना है।

क्रिप्टोग्राफी संचार और डेटा को ऐसे स्वरूपों में परिवर्तित करके सुरक्षित करने का अभ्यास है जिसे केवल अधिकृत पक्ष ही समझ सकते हैं।

नोड.जे.एस क्रिप्टो मॉड्यूल एक अंतर्निर्मित मॉड्यूल है जो नोड.जेएस अनुप्रयोगों को क्रिप्टोग्राफ़िक कार्यक्षमता प्रदान करता है। यह एन्क्रिप्शन, डिक्रिप्शन, हैशिंग, डिजिटल हस्ताक्षर, सुरक्षित यादृच्छिक संख्या पीढ़ी, और अधिक सहित क्रिप्टोग्राफ़िक क्षमताओं की एक श्रृंखला प्रदान करता है।

यहां आप Node.js क्रिप्टो मॉड्यूल के विभिन्न अनुप्रयोगों का पता लगाएंगे और आप अपने अनुप्रयोगों को सुरक्षित करने के लिए उनका उपयोग कैसे कर सकते हैं।

हैशिंग

हैशिंग एक तरफ़ा क्रिप्टोग्राफ़िक तकनीक है जिसका उपयोग आप दी गई कुंजी या स्ट्रिंग को एक निश्चित आकार के आउटपुट में बदलने के लिए कर सकते हैं जिसे हैश या डाइजेस्ट के रूप में जाना जाता है।

हैशिंग एक तरफा कार्य है जिसका अर्थ है कि जब आपके पास एक कुंजी या स्ट्रिंग है, तो आप जेनरेट किए गए हैश से मूल मान प्राप्त नहीं कर सकते हैं।

Node.js क्रिप्टो मॉड्यूल विभिन्न हैशिंग कार्यों जैसे SHA-256, SHA-512, MD5, और अधिक का समर्थन करता है।

आप क्रिप्टो मॉड्यूल का उपयोग करके डेटा को हैश कर सकते हैं createHash विधि, जो हैशिंग एल्गोरिथम को एक तर्क के रूप में लेती है। विधि एक देता है हैश ऑब्जेक्ट, जिसका उपयोग करके आप डेटा को हैश करने के लिए उपयोग कर सकते हैं अद्यतन और डाइजेस्ट तरीके।

उदाहरण के लिए:

कॉन्स्ट क्रिप्टो = ज़रूरत होना('क्रिप्टो');

कॉन्स्ट डेटा = "पासवर्ड";

// हैश ऑब्जेक्ट बनाना
कॉन्स्ट हैशअल्गो = क्रिप्टो.क्रिएट हैश ('शा256')

// डेटा को हैश करने के लिए पास करना
हैशअल्गो.अपडेट (डेटा);

// आवश्यक प्रारूप में हैश बनाना
कॉन्स्ट हैश = हैशअल्गो.डाइजेस्ट ('हेक्स');

सांत्वना देना।लकड़ी का लट्ठा(`हैश: ${हैश}`);

ऊपर के उदाहरण में, क्रिप्टो मॉड्यूल की createHash के साथ एक हैशिंग ऑब्जेक्ट बनाया sha256 हैशिंग एल्गोरिथ्म। अद्यतन हैश ऑब्जेक्ट पर विधि इनपुट डेटा लेती है और इसे हैश करती है। फिर डाइजेस्ट विधि एक एन्कोडिंग पैरामीटर लेती है, आउटपुट हैश मान प्रारूप निर्दिष्ट करती है, और निर्दिष्ट प्रारूप में हैश लौटाती है (हेक्स).

हैशिंग डेटा, पासवर्ड स्टोरेज, डिजिटल सिग्नेचर, और बहुत कुछ की अखंडता को सत्यापित करने के लिए उपयोगी है।

यादृच्छिक डेटा उत्पन्न करना

विभिन्न उपयोग मामलों के लिए क्रिप्टोग्राफी, गेमिंग और परीक्षण में अक्सर क्रिप्टोग्राफ़िक रूप से सुरक्षित यादृच्छिक डेटा की आवश्यकता होती है।

क्रिप्टोग्राफी में, आप एन्क्रिप्शन और डिक्रिप्शन एल्गोरिदम के लिए चाबियां, लवण और इनिशियलाइज़ेशन वैक्टर उत्पन्न करने के लिए यादृच्छिक डेटा का उपयोग कर सकते हैं।

गेमिंग में, आप गेम के स्तर, वर्ण, आइटम आदि उत्पन्न करने के लिए रैंडम डेटा का उपयोग कर सकते हैं ताकि धोखाधड़ी को रोका जा सके और यह सुनिश्चित किया जा सके कि गेम का अनुमान नहीं लगाया जा सकता है।

परीक्षण में, आप इसका उपयोग वास्तविक दुनिया के परिदृश्यों और किनारे के मामलों का अनुकरण करने के लिए कर सकते हैं।

आप Node.js क्रिप्टो मॉड्यूल का उपयोग करके यादृच्छिक डेटा उत्पन्न कर सकते हैं randomBytes तरीका। यह विधि एक तर्क के रूप में एक संख्या लेती है और यादृच्छिक बाइट्स का बफर लौटाती है।

यह संख्या बाइट्स के आकार का प्रतिनिधित्व करती है जो विधि उत्पन्न करेगी। हालाँकि, संख्या इससे बड़ी नहीं होनी चाहिए 2³¹ - 1 (2147483647), जो अधिकतम मान है जिसे 32-बिट हस्ताक्षरित पूर्णांक द्वारा दर्शाया जा सकता है।

उदाहरण के लिए:

कॉन्स्ट क्रिप्टो = ज़रूरत होना("क्रिप्टो");

// रैंडम बाइट बनाएं
कॉन्स्ट रैंडमबाइट्स = क्रिप्टो.रैंडमबाइट्स (32);

// हेक्स में कनवर्ट करें
कॉन्स्ट रैंडमस्ट्रिंग = रैंडमबाइट्स.टूस्ट्रिंग ("हेक्स");

सांत्वना देनालॉग (यादृच्छिक स्ट्रिंग); // कंसोल के लिए यादृच्छिक स्ट्रिंग लॉग करता है

उपरोक्त कोड ब्लॉक कंसोल में 64 हेक्साडेसिमल वर्णों (32 बाइट्स) की एक यादृच्छिक स्ट्रिंग उत्पन्न करता है और लॉग करता है।

क्रिप्टोग्राफिक रूप से सुरक्षित यादृच्छिक डेटा उत्पन्न करना महत्वपूर्ण है क्योंकि यह सुनिश्चित करता है कि यादृच्छिक डेटा अनुमानित नहीं है और हमलावर उन्हें हेरफेर या अनुमान नहीं लगा सकते हैं।

Node.js में एन्क्रिप्शन और डिक्रिप्शन

एन्क्रिप्शन सादे पाठ को अपठनीय रूप में बदलने की प्रक्रिया है (सिफर टेक्स्ट) एक एन्क्रिप्शन एल्गोरिथ्म और एक गुप्त कुंजी का उपयोग करके।

डिक्रिप्शन एन्क्रिप्शन के विपरीत है। यह उसी एन्क्रिप्शन एल्गोरिथम और कुंजी का उपयोग करके सिफर टेक्स्ट को वापस सादे टेक्स्ट में बदलने की प्रक्रिया है।

Node.js क्रिप्टो मॉड्यूल विभिन्न एन्क्रिप्शन और डिक्रिप्शन एल्गोरिदम के लिए समर्थन प्रदान करता है, एईएस (उन्नत एन्क्रिप्शन मानक), डीईएस (डेटा एन्क्रिप्शन मानक), और आरएसए सहित (रिवेस्ट-शमीर-एडलमैन)।

क्रिप्टो मॉड्यूल का उपयोग करके नोड.जेएस में डेटा को कैसे एन्क्रिप्ट करें

आप का उपयोग कर डेटा एन्क्रिप्ट कर सकते हैं क्रिप्टो.क्रिएटसिफरिव () विधि, जो एन्क्रिप्शन एल्गोरिदम, गुप्त कुंजी, और प्रारंभिक वेक्टर को इनपुट के रूप में लेती है। गुप्त कुंजी आपके द्वारा उपयोग किए जा रहे एन्क्रिप्टिंग एल्गोरिदम पर निर्भर है। उदाहरण के लिए, के लिए एईएस-256 एल्गोरिथ्म में सीबीसी मोड, कुंजी की लंबाई 32 बाइट्स होनी चाहिए।

विधि एक देता है सिफ़र ऑब्जेक्ट, जिसका उपयोग करके आप डेटा को एन्क्रिप्ट करने के लिए उपयोग कर सकते हैं अद्यतन() और अंतिम() तरीके। एन्क्रिप्टेड डेटा को आमतौर पर हेक्साडेसिमल स्ट्रिंग या बफर के रूप में दर्शाया जाता है।

उदाहरण के लिए:

कॉन्स्ट क्रिप्टो = ज़रूरत होना("क्रिप्टो");

// एन्क्रिप्शन और डिक्रिप्शन के लिए एक गुप्त कुंजी उत्पन्न करें।
कॉन्स्ट सीक्रेटकी = क्रिप्टो.रैंडमबाइट्स (32);

// एक प्रारंभिक वेक्टर उत्पन्न करें
कॉन्स्ट iv = क्रिप्टो.रैंडमबाइट्स (16);

// डेटा एन्क्रिप्ट किया जाना है
कॉन्स्ट सादा पाठ = "यह एक गुप्त संदेश है";

// सिफर ऑब्जेक्ट बनाएं
कॉन्स्ट सिफर = क्रिप्टो.क्रिएटसिफरिव ("एईएस-256-सीबीसी", गुप्तकी, iv);

// डेटा एन्क्रिप्ट करें
होने देना एन्क्रिप्टेड टेक्स्ट = सिफर.अपडेट (सादा टेक्स्ट, "यूटीएफ-8", "हेक्स");

// एन्क्रिप्शन को अंतिम रूप दें
एन्क्रिप्टेड टेक्स्ट + = सिफर.फाइनल ("हेक्स");

सांत्वना देनालॉग (एन्क्रिप्टेड टेक्स्ट);

ऊपर दिए गए उदाहरण से पता चलता है कि कैसे आप क्रिप्टो मॉड्यूल का उपयोग करके सीबीसी मोड में एईएस-256 का उपयोग करके सादे पाठ को एन्क्रिप्ट कर सकते हैं। यह एक गुप्त कुंजी और एक इनिशियलाइज़ेशन वेक्टर का उपयोग करके उत्पन्न करता है क्रिप्टो.रैंडमबाइट्स तरीका। फिर का उपयोग करके एक सिफर ऑब्जेक्ट बनाता है crypto.createCipheriv विधि, और का उपयोग करके सादे पाठ संदेश को एन्क्रिप्ट करता है cipher.update और सिफर.फाइनल तरीके।

परिणाम एन्क्रिप्टेड संदेश का एक हेक्साडेसिमल स्ट्रिंग है, जिसे आप उसी गुप्त कुंजी और IV का उपयोग करके डिक्रिप्ट कर सकते हैं।

क्रिप्टो मॉड्यूल का उपयोग करके Node.js में डेटा को डिक्रिप्ट कैसे करें

आप क्रिप्टो मॉड्यूल का उपयोग करके एन्क्रिप्टेड डेटा को डिक्रिप्ट कर सकते हैं क्रिप्टो.क्रिएटडिसिफरिव () विधि, जो डिक्रिप्शन एल्गोरिदम, गुप्त कुंजी, और प्रारंभिक वेक्टर को इनपुट के रूप में लेती है। विधि एक देता है पढ़ना ऑब्जेक्ट, जिसका उपयोग करके आप डेटा को डिक्रिप्ट करने के लिए उपयोग कर सकते हैं Decipher.update () और डिसिफर.फाइनल () तरीके।

उदाहरण के लिए:

// डिसिफर ऑब्जेक्ट बनाएं
कॉन्स्ट डिसिफर = क्रिप्टो.क्रिएटडेसिफरिव ("एईएस-256-सीबीसी", गुप्तकी, iv);

// डेटा डिक्रिप्ट करें
होने देना decryptedText = decipher.update (एन्क्रिप्टेड टेक्स्ट, "हेक्स", "यूटीएफ-8");

// डिक्रिप्शन को अंतिम रूप दें
डिक्रिप्टेडटेक्स्ट += डिसिफर.फाइनल ("यूटीएफ-8");

सांत्वना देनालॉग (डिक्रिप्टेड टेक्स्ट); // यह एक गुप्त संदेश है

ऊपर दिया गया उदाहरण दर्शाता है कि आप उसी एल्गोरिथम, गुप्त कुंजी और इनिशियलाइज़ेशन वेक्टर का उपयोग करके एन्क्रिप्ट किए गए डेटा को कैसे डिक्रिप्ट कर सकते हैं जिसके साथ आपने इसे एन्क्रिप्ट किया था।

यह का उपयोग करके एक Decipher ऑब्जेक्ट बनाता है crypto.createDecipheriv तरीका। फिर यह उपयोग करके डेटा को डिक्रिप्ट करता है decipher.update विधि, जो डेटा, इनपुट एन्कोडिंग और आउटपुट एन्कोडिंग को तर्कों के रूप में लेती है। अंत में, यह उपयोग करके डिक्रिप्शन प्रक्रिया को समाप्त करता है decipher.final तरीका। इस पद्धति को कॉल करने से यह सुनिश्चित होता है कि डिक्रिप्ट ऑब्जेक्ट का उपयोग डेटा को डिक्रिप्ट करने के लिए अधिक समय तक किया जा सकता है। नतीजा एक सादा पाठ स्ट्रिंग है।

संवेदनशील डेटा की सुरक्षा और इसकी गोपनीयता बनाए रखने के लिए एन्क्रिप्शन और डिक्रिप्शन महत्वपूर्ण हैं। उनके पास ई-कॉमर्स, ऑनलाइन बैंकिंग, डेटा स्टोरेज, और बहुत कुछ में वास्तविक दुनिया के विभिन्न अनुप्रयोग हैं।

Node.js क्रिप्टो मॉड्यूल के अन्य अनुप्रयोग

हैशिंग के अलावा, क्रिप्टोग्राफ़िक रूप से सुरक्षित यादृच्छिक डेटा उत्पन्न करना, और एन्क्रिप्शन और डिक्रिप्शन, आप इसका उपयोग भी कर सकते हैं डिजिटल हस्ताक्षर पर हस्ताक्षर करने और सत्यापित करने के लिए Node.js क्रिप्टो मॉड्यूल, जो डिजिटल की प्रामाणिकता और अखंडता को सत्यापित करने में मदद करता है दस्तावेज़। इसके अतिरिक्त, आप डेटा ट्रांसमिशन के लिए स्ट्रीम को सुरक्षित करने के लिए क्रिप्टो मॉड्यूल का उपयोग कर सकते हैं ताकि ट्रांसमिशन के दौरान डेटा से छेड़छाड़ और ईव्सड्रॉपिंग को रोका जा सके।