使用C#进行加密和解密通常涉及到.NET框架中的加密类库。下面是一个简单的示例,演示如何使用C#进行AES对称加密和解密:

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

class Program
{
    static void Main()
    {
        string plainText = "Hello, World!";

        // 生成随机的密钥和初始化向量
        byte[] key = GenerateRandomBytes(32); // 256 bits
        byte[] iv = GenerateRandomBytes(16); // 128 bits

        // 加密
        byte[] encryptedText = Encrypt(plainText, key, iv);

        // 解密
        string decryptedText = Decrypt(encryptedText, key, iv);

        // 输出结果
        Console.WriteLine($"原始文本: {plainText}");
        Console.WriteLine($"加密后: {Convert.ToBase64String(encryptedText)}");
        Console.WriteLine($"解密后: {decryptedText}");
    }

    static byte[] GenerateRandomBytes(int length)
    {
        using (var rng = new RNGCryptoServiceProvider())
        {
            byte[] bytes = new byte[length];
            rng.GetBytes(bytes);
            return bytes;
        }
    }

    static byte[] Encrypt(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();
            }
        }
    }

    static string Decrypt(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();
                    }
                }
            }
        }
    }
}

请注意,上述代码使用AES算法进行对称加密。在实际应用中,确保安全性需要更多考虑,例如安全地存储密钥和使用适当的加密模式。

882333精选一肖 澳门网络游戏注册送68 2020澳门六盒宝典