crypto-js क्या है?
crypto-js JavaScript और TypeScript के लिए एक लोकप्रिय लाइब्रेरी है, जो मानक क्रिप्टोग्राफिक एल्गोरिदम के कार्यान्वयन प्रदान करती है। इसे Node.js की आवश्यकता नहीं है और यह ब्राउज़र और सर्वर दोनों पर काम करती है। TypeScript प्रोजेक्ट्स में, crypto-js मूल क्रिप्टोग्राफ़िक API का उपयोग किए बिना डेटा को एन्क्रिप्ट, डिक्रिप्ट, हैश करना और HMAC हस्ताक्षर उत्पन्न करना आसान बनाता है।
TypeScript में क्रिप्टोग्राफी की आवश्यकता क्यों है?
वेब एप्लिकेशन में अक्सर डेटा को सुरक्षित रखने की आवश्यकता होती है: पासवर्ड, टोकन, व्यक्तिगत संदेश। TypeScript स्वयं क्रिप्टोग्राफ़िक फ़ंक्शन प्रदान नहीं करता है, इसलिए डेवलपर्स लाइब्रेरी का उपयोग करते हैं। crypto-js अधिकांश बुनियादी आवश्यकताओं को कवर करता है: हैशिंग (SHA-256, MD5), सममित एन्क्रिप्शन (AES, DES, Triple DES) और HMAC। यह पासवर्ड के सुरक्षित भंडारण, सर्वर पर भेजने से पहले डेटा को एन्क्रिप्ट करने या JWT के साथ काम करने के लिए महत्वपूर्ण है।
स्थापना (Installation)
npm (या yarn) के माध्यम से स्थापना:npm install crypto-jsnpm install @types/crypto-js (TypeScript प्रकारों के लिए)
मुख्य कार्य
- हैशिंग: SHA-256, SHA-512, MD5, SHA-1, RIPEMD-160
- सममित एन्क्रिप्शन: AES, DES, Triple DES, Rabbit, RC4, RC4Drop
- HMAC: HMAC-SHA256, HMAC-MD5 और अन्य
- एन्कोडिंग/डिकोडिंग: Base64, Hex, UTF-8, Latin1
TypeScript पर कोड उदाहरण
import CryptoJS from 'crypto-js';
// SHA-256 हैशिंगconst hash = CryptoJS.SHA256('Hello, world!');console.log(hash.toString()); // hex-स्ट्रिंग
// AES एन्क्रिप्शनconst secretKey = 'my-secret-key';const encrypted = CryptoJS.AES.encrypt('Secret data', secretKey).toString();console.log('एन्क्रिप्टेड:', encrypted);
// डिक्रिप्शनconst decrypted = CryptoJS.AES.decrypt(encrypted, secretKey);const plaintext = decrypted.toString(CryptoJS.enc.Utf8);console.log('डिक्रिप्टेड:', plaintext);
// HMAC-SHA256const hmac = CryptoJS.HmacSHA256('message', 'key');console.log('HMAC:', hmac.toString());
// MD5 (अखंडता जांच के लिए)const md5 = CryptoJS.MD5('data');console.log('MD5:', md5.toString());crypto-js का उपयोग कब करें?
- क्लाइंट पर डेटा एन्क्रिप्शन: उदाहरण के लिए, सर्वर पर भेजने से पहले (लेकिन याद रखें, कुंजी से समझौता हो सकता है)।
- सर्वर पर पासवर्ड हैशिंग: डेटाबेस में भंडारण के लिए (विशेष लाइब्रेरी का उपयोग करना बेहतर है, लेकिन crypto-js सरल मामलों के लिए उपयुक्त है)।
- संदेश अखंडता सत्यापन: HMAC की सहायता से।
- टोकन जनरेशन: उदाहरण के लिए, एकल-उपयोग लिंक के लिए।
- पुराने सिस्टम के साथ काम करना: जहाँ MD5 या DES की आवश्यकता होती है।
महत्वपूर्ण: उच्च-लोड या सुरक्षा-महत्वपूर्ण सिस्टम के लिए crypto-js की अनुशंसा नहीं की जाती है - Web Crypto API या node:crypto का उपयोग करें। लेकिन सामान्य कार्यों और छोटे प्रोजेक्ट्स के लिए, यह एक सरल और सुविधाजनक समाधान बना हुआ है।
```