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

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

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

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

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



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



1. सममित एन्क्रिप्शन (AES)



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



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 aes = Aes.Create()) { aes.Key = Key; aes.IV = IV;

ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.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 aes = Aes.Create()) { aes.Key = Key; aes.IV = IV;

ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.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(); } } } } }}


2. असममित एन्क्रिप्शन (RSA)



असममित एन्क्रिप्शन कुंजियों की एक जोड़ी का उपयोग करता है: एन्क्रिप्शन के लिए सार्वजनिक कुंजी (public key) और डिक्रिप्शन के लिए निजी कुंजी (private key)। .NET में, यह तंत्र RSA वर्ग द्वारा कार्यान्वित किया गया है। RSA का उपयोग अक्सर सममित कुंजियों को सुरक्षित रूप से स्थानांतरित करने के लिए किया जाता है।



RSA का उपयोग करके कुंजी उत्पन्न करने और एन्क्रिप्शन का उदाहरण:



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

public class RsaExample{ public static void RsaEncryptDecrypt() { using (RSA rsa = RSA.Create()) { // कुंजी उत्पन्न करना (2048 बिट) RSAParameters publicKey = rsa.ExportParameters(false); // केवल सार्वजनिक कुंजी RSAParameters privateKey = rsa.ExportParameters(true); // दोनों कुंजियाँ

string original = "RSA के लिए गुप्त संदेश";

// सार्वजनिक कुंजी से एन्क्रिप्शन byte[] encryptedData = rsa.Encrypt(Encoding.UTF8.GetBytes(original), RSAEncryptionPadding.OaepSHA256);

// निजी कुंजी से डिक्रिप्शन byte[] decryptedData = rsa.Decrypt(encryptedData, RSAEncryptionPadding.OaepSHA256); string decrypted = Encoding.UTF8.GetString(decryptedData);

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


3. डेटा हैशिंग (SHA-256, MD5)



हैशिंग

अनुशंसाएँ