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>
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!