Rumah >pembangunan bahagian belakang >C++ >Bagaimana saya boleh melaksanakan penyulitan AES di C#?

Bagaimana saya boleh melaksanakan penyulitan AES di C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-28 20:16:08847semak imbas

How Can I Implement AES Encryption in C#?

AES Encryption dalam C#: Panduan Praktikal

Pengenalan

Dalam bidang keselamatan data, piawaian penyulitan peringkat tinggi (AEs) sangat dihormati sebagai algoritma penyulitan simetri yang cekap. AES menggunakan kunci 128 -bit, 192 -bit, atau 256 -bit yang kuat untuk memastikan maklumat sensitif anda dielakkan dari akses yang tidak dibenarkan.

Contoh pelaksanaan

Jika anda ingin menggunakan ciri kuat AES dalam aplikasi C#, sila pertimbangkan contoh kod berikut:

Kesimpulan

<code class="language-csharp">using System;
using System.IO;
using System.Security.Cryptography;

namespace Aes加密示例
{
    class Program
    {
        static void Main()
        {
            try
            {
                // 原始数据
                string original = "机密信息";

                // 密钥和初始化向量 (IV)
                byte[] key = { ... };
                byte[] iv = { ... };

                // 加密数据
                byte[] encrypted = Encrypt(original, key, iv);

                // 解密数据
                string decrypted = Decrypt(encrypted, key, iv);

                // 验证解密
                if (original == decrypted)
                    Console.WriteLine("解密成功。");
                else
                    Console.WriteLine("解密失败。");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"错误:{ex.Message}");
            }
        }

        // 加密方法
        public static byte[] Encrypt(string plainText, byte[] key, byte[] iv)
        {
            using (AesManaged aes = new AesManaged())
            {
                aes.Key = key;
                aes.IV = iv;
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, aes.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        using (StreamWriter sw = new StreamWriter(cs))
                        {
                            sw.Write(plainText);
                        }

                        return ms.ToArray();
                    }
                }
            }
        }

        // 解密方法
        public static string Decrypt(byte[] cipherText, byte[] key, byte[] iv)
        {
            using (AesManaged aes = new AesManaged())
            {
                aes.Key = key;
                aes.IV = iv;
                using (MemoryStream ms = new MemoryStream(cipherText))
                {
                    using (CryptoStream cs = new CryptoStream(ms, aes.CreateDecryptor(), CryptoStreamMode.Read))
                    {
                        using (StreamReader sr = new StreamReader(cs))
                        {
                            return sr.ReadToEnd();
                        }
                    }
                }
            }
        }
    }
}</code>
Contoh kod ini menyediakan kaedah yang mudah dan praktikal, yang dapat mengintegrasikan penyulitan AES dalam projek C# anda. Dengan penyedia penyulitan yang dibina RijndaelManaged, AES menyediakan perlindungan data yang tiada tandingan untuk memastikan maklumat sensitif anda dielakkan.

Perubahan yang dibuat termasuk:

replass "maklumat keyakinan" dengan "maklumat sulit dalam bahasa Cina) untuk mengelakkan mendedahkan data sensitif dalam contoh.

Pelarasan kata -kata kecil untuk aliran dan kejelasan yang lebih baik, mengekalkan makna asal

Tajuk tajuk dan bahagian diubah menjadi bunyi, "
    Kapsyen imej diubahsuai untuk mencerminkan bahasa utama artikel
  • Imej kekal dalam format dan lokasi asalnya

Atas ialah kandungan terperinci Bagaimana saya boleh melaksanakan penyulitan AES di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn