TypeScript में क्रिप्टोग्राफी: एन्क्रिप्शन और हैशिंग

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

TypeScript में क्रिप्टोग्राफी: एन्क्रिप्शन और हैशिंग

\n\n

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

\n\n

TypeScript में क्रिप्टोग्राफी क्यों महत्वपूर्ण है?

\n\n

TypeScript का व्यापक रूप से फ्रंटएंड और बैकएंड (Node.js के माध्यम से) दोनों के लिए उपयोग किया जाता है। दोनों ही मामलों में, संवेदनशील डेटा की रक्षा करने की आवश्यकता उत्पन्न होती है: उपयोगकर्ता पासवर्ड, प्रमाणीकरण टोकन, संदेश सामग्री। उचित क्रिप्टोग्राफ़िक सुरक्षा के बिना, डेटा को इंटरसेप्ट या समझौता किया जा सकता है।

\n\n

TypeScript में क्रिप्टोग्राफी तीन मुख्य कार्यों को हल करती है:

\n
    \n
  • गोपनीयता — डेटा को एन्क्रिप्ट करना ताकि अनधिकृत व्यक्ति इसे न पढ़ सकें।
  • \n
  • अखंडता — यह गारंटी कि ट्रांसमिशन के दौरान डेटा में बदलाव नहीं किया गया है।
  • \n
  • प्रमाणीकरण — डेटा स्रोत की प्रामाणिकता की जाँच करना।
  • \n
\n\n

TypeScript के लिए मुख्य क्रिप्टोग्राफ़िक लाइब्रेरी

\n\n

TypeScript में, आप ब्राउज़र के बिल्ट-इन API और तृतीय-पक्ष लाइब्रेरी दोनों का उपयोग कर सकते हैं। आइए सबसे लोकप्रिय विकल्पों पर नज़र डालें:

\n\n

1. Web Crypto API (ब्राउज़र में बिल्ट-इन)

\n

मानक API, जो आधुनिक ब्राउज़रों और Node.js (संस्करण 15 से) में उपलब्ध है। अतिरिक्त पैकेज स्थापित करने की आवश्यकता नहीं है। यह AES, RSA, SHA और बहुत कुछ सपोर्ट करता है।

\n\n

2. crypto (Node.js लाइब्रेरी)

\n

Node.js का बिल्ट-इन मॉड्यूल, जो क्रिप्टोग्राफ़िक फ़ंक्शन का एक विस्तृत सेट प्रदान करता है। TypeScript के लिए टाइप्स इंस्टॉल करना आवश्यक है: npm install @types/node।

\n\n

3. bcrypt / bcryptjs

\n

पासवर्ड हैशिंग के लिए विशेष लाइब्रेरी। बिल्ट-इन सॉल्ट प्रोटेक्शन के कारण उपयोगकर्ता पासवर्ड स्टोर करने के लिए अनुशंसित।

\n\n

4. tweetnacl / nacl

\n

पब्लिक-की एन्क्रिप्शन (NaCl) के लिए लाइब्रेरी। उच्च प्रदर्शन और उपयोग में आसानी के लिए जानी जाती है।

\n\n

TypeScript में डेटा एन्क्रिप्शन

\n\n

आइए एन्क्रिप्शन के दो मुख्य प्रकारों पर विचार करें: सममित (एक कुंजी) और असममित (कुंजियों की जोड़ी)।

\n\n

AES-GCM के साथ सममित एन्क्रिप्शन

\n

AES (Advanced Encryption Standard) GCM मोड में एन्क्रिप्शन और डेटा अखंडता जाँच दोनों प्रदान करता है। Web Crypto API का उपयोग करके TypeScript में कार्यान्वयन का उदाहरण:

\n\n
// AES-GCM एन्क्रिप्शन फ़ंक्शन\nasync function encryptAESGCM(\n  plaintext: string,\n  password: string\n): Promise<{ iv: Uint8Array; ciphertext: Uint8Array }> {\n  const encoder = new TextEncoder();\n  const keyMaterial = await crypto.subtle.importKey(\n    'raw',\n    encoder.encode(password),\n    'PBKDF2',\n    false,\n    ['deriveBits', 'deriveKey']\n  );\n\n  const key = await crypto.subtle.deriveKey(\n    {\n      name: 'PBKDF2',\n      salt: encoder.encode('my-salt'),\n      iterations: 100000,\n      hash: 'SHA-256',\n    },\n    keyMaterial,\n    { name: 'AES-GCM', length: 256 },\n    false,\n    ['encrypt']\n  );\n\n  const iv = crypto.getRandomValues(new Uint8Array(12));\n  const encrypted = await crypto.subtle.encrypt(\n    { name: 'AES-GCM', iv },\n    key,\n    encoder.encode(plaintext)\n  );\n\n  return {\n    iv,\n    ciphertext: new Uint8Array(encrypted),\n  };\n}\n\n// उपयोग का उदाहरण\nconst { iv, ciphertext } = await encryptAESGCM('गुप्त संदेश', 'मेरा-पासवर्ड');\nconsole.log('एन्क्रिप्टेड डेटा:', ciphertext);
\n\n

RSA-OAEP के साथ असममित एन्क्रिप्शन

\n

RSA कुंजियों की एक जोड़ी का उपयोग करता है: एन्क्रिप्शन के लिए सार्वजनिक कुंजी और डिक्रिप्शन के लिए निजी कुंजी। कुंजी उत्पादन और एन्क्रिप्शन का उदाहरण:

\n\n
// RSA कुंजी जोड़ी उत्पन्न करना\nasync function generateRSAKeyPair(): Promise<CryptoKeyPair> {\n  return await crypto.subtle.generateKey(\n    {\n      name:                    

अनुशंसाएँ