How to Encrypt and Decrypt a String in C#

By FoxLearn 1/21/2025 3:11:55 AM   14.04K
In C#, you can use TripleDES (Triple Data Encryption Standard) for encrypting and decrypting strings in a Windows Forms application.

The System.Security.Cryptography namespace provides the necessary classes to implement TripleDES encryption and decryption.

How to encrypt and decrypt a string using TripleDES in C#?

Open Visual Studio, then click New Project, then select Visual C# on the left, then Windows and then select Windows Forms Application. Name your project "EncryptDecrypt" and then click OK

Drag and drop the Label, Button, and Textbox controls from the Visual Toolbox onto your form designer, then design your form as shown below.

encrypt decrypt string in c#

C# Encrypt String

// This method will encrypt a plain text string using TripleDES in C#
private void btnEncrypt_Click(object sender, EventArgs e)
{
    // Input text to bytes
    byte[] data = UTF8Encoding.UTF8.GetBytes(txtValue.Text);
    using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
    {
        byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash)); // Get hash key
        // Encrypt data using TripleDES
        using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 })
        {
            // Encrypt data
            ICryptoTransform transform = tripDes.CreateEncryptor();
            byte[] results = transform.TransformFinalBlock(data, 0, data.Length);
            // Convert encrypted data to base64 string
            txtEncrypt.Text = Convert.ToBase64String(results, 0, results.Length);
        }
    }
}

C# Decrypt String

// This method will decrypt the encrypted string back to plain text in C#
private void btnDecrypt_Click(object sender, EventArgs e)
{
    // Convert the base64 encoded encrypted string to a byte array
    byte[] data = Convert.FromBase64String(txtEncrypt.Text);
    // Decrypt data using TripleDES
    using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
    {
        byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));// Get hash key
        // Decrypt data by hash key
        using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 })
        {
            ICryptoTransform transform = tripDes.CreateDecryptor();
            byte[] results = transform.TransformFinalBlock(data, 0, data.Length);
            txtDecrypt.Text = UTF8Encoding.UTF8.GetString(results);
        }
    }
}

Add code to handle your main form as shown below.

using System;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;

namespace EncryptDecrypt
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string hash = "f0xle@rn";//Create a hash key
    }
}

TripleDES (3DES) is a symmetric encryption algorithm that applies the DES (Data Encryption Standard) algorithm three times to each data block. It uses either two or three 56-bit keys, effectively creating a key length of 112 or 168 bits.

VIDEO TUTORIAL

Related