Header Ads Widget

ASP.NET C# में AES Encryption और Decryption कैसे करें?

ASP.NET C# में AES Encryption और Decryption कैसे करें?

🔐 ASP.NET C# में AES Encryption और Decryption कैसे करें?

इस ब्लॉग पोस्ट में हम सीखेंगे कि कैसे आप ASP.NET (WebForms) में AES Algorithm की मदद से किसी टेक्स्ट को Encrypt और Decrypt कर सकते हैं। यह डेमो Symmetric Encryption का उदाहरण है जिसमें एक ही Key का उपयोग दोनों के लिए होता है।

👉 AES (Advanced Encryption Standard) सबसे लोकप्रिय और सुरक्षित Symmetric Algorithm है जिसका उपयोग बैंकिंग, चैटिंग ऐप्स और डेटा प्रोटेक्शन में किया जाता है।

📄 Step 1: Default.aspx (Design Code)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<html>
<head>
    <title>AES Encryption Demo - ASP.NET</title>
</head>
<body>
    <form id="form1" runat="server">
        <h2>🔐 AES Encryption - ASP.NET</h2>

        <asp:Label ID="Label1" runat="server" Text="Enter Text: "></asp:Label><br />
        <asp:TextBox ID="txtPlainText" runat="server" Width="300px" /><br /><br />

        <asp:Button ID="btnEncrypt" runat="server" Text="Encrypt & Decrypt" OnClick="btnEncrypt_Click" /><br /><br />

        <asp:Label ID="lblEncrypted" runat="server" Text="" /><br />
        <asp:Label ID="lblDecrypted" runat="server" Text="" /><br />
    </form>
</body>
</html>

💻 Step 2: Default.aspx.cs (C# CodeBehind)

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

public partial class _Default : System.Web.UI.Page
{
    private static readonly string key = "ThisIsASecretKey"; // 16-char key for AES-128

    protected void btnEncrypt_Click(object sender, EventArgs e)
    {
        string plainText = txtPlainText.Text;
        string encrypted = Encrypt(plainText);
        string decrypted = Decrypt(encrypted);

        lblEncrypted.Text = "🔒 Encrypted: " + encrypted;
        lblDecrypted.Text = "🔓 Decrypted: " + decrypted;
    }

    private string Encrypt(string plainText)
    {
        byte[] keyBytes = Encoding.UTF8.GetBytes(key);
        byte[] ivBytes = Encoding.UTF8.GetBytes(key); // Use random IV in production

        using (Aes aes = Aes.Create())
        {
            aes.Key = keyBytes;
            aes.IV = ivBytes;

            using (MemoryStream ms = new MemoryStream())
            using (ICryptoTransform encryptor = aes.CreateEncryptor())
            using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
            {
                byte[] inputBytes = Encoding.UTF8.GetBytes(plainText);
                cs.Write(inputBytes, 0, inputBytes.Length);
                cs.FlushFinalBlock();
                return Convert.ToBase64String(ms.ToArray());
            }
        }
    }

    private string Decrypt(string cipherText)
    {
        byte[] keyBytes = Encoding.UTF8.GetBytes(key);
        byte[] ivBytes = Encoding.UTF8.GetBytes(key);

        using (Aes aes = Aes.Create())
        {
            aes.Key = keyBytes;
            aes.IV = ivBytes;

            using (MemoryStream ms = new MemoryStream())
            using (ICryptoTransform decryptor = aes.CreateDecryptor())
            using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Write))
            {
                byte[] cipherBytes = Convert.FromBase64String(cipherText);
                cs.Write(cipherBytes, 0, cipherBytes.Length);
                cs.FlushFinalBlock();
                return Encoding.UTF8.GetString(ms.ToArray());
            }
        }
    }
}

📌 Output Example:

  • Input: HelloWorld
  • Encrypted: HYfGzCai2EwE6z4GH2jC3g==
  • Decrypted: HelloWorld

⚠️ Security Tips:

  • Key और IV को Production में Hardcode न करें
  • IV को Random Generate करें और साथ भेजें
  • Key को Secure Location जैसे Azure Key Vault या Environment Variable में रखें

🔚 निष्कर्ष:

  • आपने सीखा कि ASP.NET C# में AES का उपयोग कर कैसे टेक्स्ट को Encrypt और फिर Decrypt किया जाता है।
  • यह तरीका बहुत उपयोगी है जब आपको किसी फॉर्म डेटा या यूज़र इनपुट को सुरक्षित रखना हो।

Post a Comment

0 Comments