C# (.NET) में क्रिप्टोग्राफी: डेटा एन्क्रिप्शन और हैशिंग

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

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

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

C# (.NET) में क्रिप्टोग्राफी: डेटा एन्क्रिप्शन और हैशिंग

.NET प्लेटफॉर्म पर आधुनिक एप्लिकेशन को लगभग हमेशा डेटा सुरक्षा की आवश्यकता होती है। System.Security.Cryptography लाइब्रेरी क्रिप्टोग्राफिक ऑपरेशनों को लागू करने के लिए उपकरणों का एक पूरा सेट प्रदान करती है: सममित और असममित एन्क्रिप्शन से लेकर हैशिंग और डिजिटल हस्ताक्षर निर्माण तक। इस लेख में, हम C# में उपलब्ध मुख्य एल्गोरिदम पर चर्चा करेंगे और उनके उपयोग के उदाहरण दिखाएंगे।



1. .NET में क्रिप्टोग्राफी के मुख्य वर्ग

सभी क्रिप्टोग्राफिक वर्ग System.Security.Cryptography नाम स्थान में स्थित हैं। मुख्य श्रेणियाँ:

  • सममित एन्क्रिप्शन — एन्क्रिप्शन और डिक्रिप्शन के लिए एक कुंजी (Aes, DES, TripleDES)।
  • असममित एन्क्रिप्शन — कुंजियों का जोड़ा: सार्वजनिक और निजी (RSA, ECDiffieHellman)।
  • हैशिंग — डेटा का एकतरफा रूपांतरण (SHA256, SHA512, MD5)।
  • यादृच्छिक संख्या निर्माण — क्रिप्टोग्राफिक रूप से सुरक्षित जनरेटर (RandomNumberGenerator)।


2. AES के उदाहरण के साथ सममित एन्क्रिप्शन

AES (Advanced Encryption Standard) एल्गोरिदम सबसे सामान्य सममित सिफर है। .NET में इसका उपयोग करने के लिए Aes वर्ग का उपयोग किया जाता है।

स्ट्रिंग को एन्क्रिप्ट और डिक्रिप्ट करने का उदाहरण:

using System;using System.IO;using System.Security.Cryptography;using System.Text;

public class AesExample{ public static byte[] EncryptStringToBytes_Aes(string plainText, byte[] key, byte[] iv) { using (Aes aesAlg = Aes.Create()) { aesAlg.Key = key; aesAlg.IV = iv;

ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);

using (MemoryStream msEncrypt = new MemoryStream()) { using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) { using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) { swEncrypt.Write(plainText); } return msEncrypt.ToArray(); } } } }

public static string DecryptStringFromBytes_Aes(byte[] cipherText, byte[] key, byte[] iv) { using (Aes aesAlg = Aes.Create()) { aesAlg.Key = key; aesAlg.IV = iv;

ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);

using (MemoryStream msDecrypt = new MemoryStream(cipherText)) { using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) { using (StreamReader srDecrypt = new StreamReader(csDecrypt)) { return srDecrypt.ReadToEnd(); } } } } }}

उपयोग:

byte[] key = RandomNumberGenerator.GetBytes(32); // 256-बिट कुंजीbyte[] iv = RandomNumberGenerator.GetBytes(16);  // 128-बिट IV

string original = "गोपनीय डेटा";byte[] encrypted = AesExample.EncryptStringToBytes_Aes(original, key, iv);string decrypted = AesExample.DecryptStringFromBytes_Aes(encrypted, key, iv);

Console.WriteLine($"मूल: {original}");Console.WriteLine($"डिक्रिप्ट किया गया: {decrypted}");


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

RSA का उपयोग कुंजियों या छोटे डेटा के सुरक्षित स्थानांतरण के लिए किया जाता है। .NET में इसे RSA वर्ग द्वारा कार्यान्वित किया गया है।

कुंजी निर्माण और एन्क्रिप्शन का उदाहरण:

using System;using System.Security.Cryptography;using System.Text;

public class RsaExample{ public static void Demonstrate

अनुशंसाएँ