91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何在C#中使用對稱加密技術

c#
小樊
83
2024-07-15 10:25:38
欄目: 編程語言

在C#中使用對稱加密技術可以通過使用內置的加密算法類來實現。以下是一種在C#中使用對稱加密技術的示例:

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

class Program
{
    static void Main()
    {
        string originalText = "Hello World!";
        string key = "mysecretkey"; // 16 bytes key for AES encryption

        byte[] encryptedData = Encrypt(originalText, key);
        string decryptedText = Decrypt(encryptedData, key);

        Console.WriteLine($"Original Text: {originalText}");
        Console.WriteLine($"Encrypted Data: {Convert.ToBase64String(encryptedData)}");
        Console.WriteLine($"Decrypted Text: {decryptedText}");
    }

    static byte[] Encrypt(string text, string key)
    {
        using (Aes aes = Aes.Create())
        {
            aes.Key = Encoding.UTF8.GetBytes(key);
            aes.IV = new byte[16]; // 16 bytes Initialization Vector for AES encryption

            using (ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV))
            {
                byte[] data = Encoding.UTF8.GetBytes(text);

                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
                    {
                        cs.Write(data, 0, data.Length);
                        cs.FlushFinalBlock();

                        return ms.ToArray();
                    }
                }
            }
        }
    }

    static string Decrypt(byte[] encryptedData, string key)
    {
        using (Aes aes = Aes.Create())
        {
            aes.Key = Encoding.UTF8.GetBytes(key);
            aes.IV = new byte[16]; // 16 bytes Initialization Vector for AES encryption

            using (ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV))
            {
                using (MemoryStream ms = new MemoryStream(encryptedData))
                {
                    using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
                    {
                        using (StreamReader sr = new StreamReader(cs))
                        {
                            return sr.ReadToEnd();
                        }
                    }
                }
            }
        }
    }
}

在上面的示例中,我們使用了AES對稱加密算法來加密和解密文本數據。首先,我們生成一個16字節的密鑰和初始化向量(IV),然后使用這些密鑰和IV來創建加密器和解密器。加密器和解密器將文本數據轉換為字節數組,并對其進行加密和解密。最后,我們將加密后的數據和解密后的文本打印出來。

0
北海市| 广饶县| 沙洋县| 民权县| 祁门县| 鹿泉市| 甘泉县| 丹凤县| 安塞县| 舒城县| 宽甸| 茂名市| 高阳县| 修文县| 汪清县| 揭西县| 稷山县| 瑞安市| 资兴市| 兰坪| 密云县| 高邮市| 栾川县| 晴隆县| 留坝县| 青海省| 山丹县| 开阳县| 封开县| 上高县| 木兰县| 武川县| 东城区| 榕江县| 江陵县| 额尔古纳市| 阿巴嘎旗| 法库县| 浦县| 朝阳市| 成都市|