Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat dengan mudah melaksanakan penyulitan dan penyahsulitan AES di C#?

Bagaimanakah saya dapat dengan mudah melaksanakan penyulitan dan penyahsulitan AES di C#?

Susan Sarandon
Lepaskan: 2025-01-28 20:11:09
asal
968 orang telah melayarinya

How Can I Easily Implement AES Encryption and Decryption in C#?

AES enkripsi dalam C#: Panduan Ringkas

Dalam bidang kriptografi, piawaian enkripsi lanjutan (AEs) adalah algoritma yang kuat dan diterima secara meluas untuk melindungi data sensitif. Walau bagaimanapun, pemahaman dan pelaksanaan penyulitan AES dalam bahasa pengaturcaraan seperti C# nampaknya menjadi tugas yang sukar.

rijndaelManaged: pembekal terbina

Untungnya, rangka kerja NET menyediakan mudah untuk menggunakan pelaksanaan penyulitan AES melalui kelas RijndaelManaged. Ini menyediakan cara yang mudah untuk memproses kerumitan penyulitan dan penyahsulitan AES.

Contoh kod penyulitan dan rahsia

Untuk menerangkan prinsip kerja RijndaelManaged, mari kita lihat contoh kod ringkas:

ringkasan

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

namespace AES加密示例
{
    class Program
    {
        static void Main(string[] args)
        {
            // 要加密的原始数据
            string original = "机密信息";

            // 生成新的密钥和初始化向量 (IV)
            using (RijndaelManaged rijndael = new RijndaelManaged())
            {
                rijndael.GenerateKey();
                rijndael.GenerateIV();

                // 加密
                byte[] encryptedBytes = EncryptStringToBytes(original, rijndael.Key, rijndael.IV);

                // 解密
                string decryptedString = DecryptStringFromBytes(encryptedBytes, rijndael.Key, rijndael.IV);

                // 显示结果
                Console.WriteLine("原始数据:{0}", original);
                Console.WriteLine("加密后:{0}", Convert.ToBase64String(encryptedBytes));
                Console.WriteLine("解密后:{0}", decryptedString);
            }
        }

        static byte[] EncryptStringToBytes(string plainText, byte[] key, byte[] iv)
        {
            using (RijndaelManaged rijndael = new RijndaelManaged())
            {
                rijndael.Key = key;
                rijndael.IV = iv;

                using (ICryptoTransform encryptor = rijndael.CreateEncryptor())
                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 DecryptStringFromBytes(byte[] encryptedBytes, byte[] key, byte[] iv)
        {
            using (RijndaelManaged rijndael = new RijndaelManaged())
            {
                rijndael.Key = key;
                rijndael.IV = iv;

                using (ICryptoTransform decryptor = rijndael.CreateDecryptor())
                using (MemoryStream msDecrypt = new MemoryStream(encryptedBytes))
                using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                {
                    return srDecrypt.ReadToEnd();
                }
            }
        }
    }
}</code>
Salin selepas log masuk
Dengan menggunakan kelas RijndaelManaged, pemaju dapat dengan mudah melaksanakan penyulitan dan penyahsulitan AES dalam aplikasi C#. Kod Contoh yang disediakan menyediakan asas yang kukuh untuk memahami konsep asas dan membina penyelesaian penyulitan keselamatan. Pelarasan halus dalam kod juga dibuat. Di samping itu, gantikan rentetan asal "Maklumat Rahsia" kepada "Maklumat Rahsia" untuk menjadikannya lebih sesuai dengan konteks Cina.

Atas ialah kandungan terperinci Bagaimanakah saya dapat dengan mudah melaksanakan penyulitan dan penyahsulitan AES di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan