Crypto-js JavaScript (Node.js) के लिए: पूरी गाइड उदाहरणों के साथ
आधुनिक वेब डेवलपमेंट में डेटा सुरक्षा एक बेहद महत्वपूर्ण पहलू है। चाहे वह यूज़र के पासवर्ड स्टोर करना हो, नेटवर्क पर संवेदनशील जानकारी भेजना हो, या फ़ाइलों को अनधिकृत एक्सेस से बचाना हो — क्रिप्टोग्राफी इन सभी प्रक्रियाओं की नींव है। Crypto-js लाइब्रेरी JavaScript इकोसिस्टम के लिए क्रिप्टोग्राफिक एल्गोरिदम का एक शक्तिशाली और सुविधाजनक सेट प्रदान करती है, जो ब्राउज़र और Node.js दोनों में काम करती है।
यह लाइब्रेरी कई मानक क्रिप्टोग्राफिक फ़ंक्शन प्रदान करती है: सिमेट्रिक एन्क्रिप्शन (AES, DES, TripleDES), हैशिंग (MD5, SHA-1, SHA-256, SHA-512), HMAC कैलकुलेशन, साथ ही रैंडम नंबर जनरेशन और एन्कोडिंग (Base64, Hex, UTF-8) के साथ काम करना। Crypto-js ऑपरेटिंग सिस्टम के नेटिव मॉड्यूल पर निर्भर नहीं करती, जो इसे आइसोमॉर्फिक एप्लिकेशन (क्लाइंट और सर्वर दोनों पर चलने वाला कोड) के लिए एक आदर्श विकल्प बनाता है।
इस लेख में हम लाइब्रेरी की इंस्टॉलेशन, कोड उदाहरणों के साथ मुख्य तरीकों, और वेब एप्लिकेशन में डेटा सुरक्षा के लिए Crypto-js के एक वास्तविक प्रैक्टिकल उपयोग पर विस्तार से चर्चा करेंगे। यह सामग्री शुरुआती डेवलपर्स और अनुभवी पेशेवरों दोनों के लिए उपयोगी होगी जो JavaScript में क्रिप्टोग्राफी के बारे में अपने ज्ञान को व्यवस्थित करना चाहते हैं।
इंस्टॉलेशन
Node.js प्रोजेक्ट में Crypto-js इंस्टॉल करने के लिए टर्मिनल में निम्न कमांड चलाएँ:
npm install crypto-js
इंस्टॉलेशन के बाद, आप लाइब्रेरी को अपने कोड में इम्पोर्ट कर सकते हैं:
// Node.js के लिए (CommonJS)
const CryptoJS = require("crypto-js");
// ES Modules के लिए (यदि package.json में "type": "module" का उपयोग हो)
import CryptoJS from "crypto-js";
त्वरित शुरुआत: न्यूनतम कार्यशील उदाहरण
चलिए एक बहुत ही सरल उदाहरण से शुरू करते हैं — AES एल्गोरिदम का उपयोग करके एक स्ट्रिंग को एन्क्रिप्ट और डिक्रिप्ट करना:
const CryptoJS = require("crypto-js");
// मूल संदेश
const message = "Hello, Crypto-js!";
// गुप्त कुंजी (वास्तविक एप्लिकेशन में मजबूत होनी चाहिए)
const secretKey = "my-secret-key-123";
// एन्क्रिप्शन
const ciphertext = CryptoJS.AES.encrypt(message, secretKey).toString();
console.log("एन्क्रिप्टेड संदेश:", ciphertext);
// डिक्रिप्शन
const bytes = CryptoJS.AES.decrypt(ciphertext, secretKey);
const decryptedMessage = bytes.toString(CryptoJS.enc.Utf8);
console.log("डिक्रिप्टेड संदेश:", decryptedMessage);
यह उदाहरण सिमेट्रिक एन्क्रिप्शन के साथ काम करने के बुनियादी चक्र को दर्शाता है: हम मूल टेक्स्ट को एन्क्रिप्टेड स्ट्रिंग (Base64) में बदलते हैं, और फिर उसी कुंजी का उपयोग करके मूल संदेश को पुनर्स्थापित करते हैं।
मुख्य तरीके/फ़ंक्शन/क्लासेस
आइए Crypto-js की प्रमुख क्षमताओं पर नज़र डालें। प्रत्येक तरीके के लिए सिग्नेचर, संक्षिप्त विवरण और एक कार्यशील उदाहरण दिया गया है।
1. CryptoJS.AES.encrypt() / CryptoJS.AES.decrypt()
सिग्नेचर: CryptoJS.AES.encrypt(message, key, [options]) और CryptoJS.AES.decrypt(ciphertext, key, [options])
यह क्या करता है: AES (Advanced Encryption Standard) एल्गोरिदम के अनुसार सिमेट्रिक एन्क्रिप्शन और डिक्रिप्शन लागू करता है। ECB, CBC, CFB, OFB, CTR मोड और 128/192/256 बिट की कुंजी साइज़ को सपोर्ट करता है।
const CryptoJS = require("crypto-js");
const message = "गोपनीय डेटा";
const key = "supersecretkey123";
// मोड और IV (इनिशियलाइज़ेशन वेक्टर) निर्दिष्ट करके एन्क्रिप्शन
const iv = CryptoJS.lib.WordArray.random(16); // AES-128 के लिए 16 बाइट
const encrypted = CryptoJS.AES.encrypt(message, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}).toString();
console.log("एन्क्रिप्टेड (CBC):", encrypted);
// डिक्रिप्शन
const decrypted = CryptoJS.AES.decrypt(encrypted, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Utf8);
console.log("डिक्रिप्टेड:", decrypted);