AES Cryptage en C #: Guide concis
Dans le domaine de la cryptographie, les normes de chiffrement avancées (AE) sont un algorithme puissant et largement accepté pour protéger les données sensibles. Cependant, la compréhension et la mise en œuvre du cryptage AES dans un langage de programmation tel que C # semble être une tâche difficile.
rijndaelmanaged: Built -in fournisseur
Heureusement, le Framework .NET a fourni une implémentation de cryptage AES facile à utiliser via la classe Rijndaelmanaged. Cela fournit un moyen simplifié de traiter la complexité du cryptage et du déchiffrement AES.
L'exemple de code de cryptage et de secret
Afin d'expliquer le principe de travail de Rijndaelmanaged, voyons un exemple de code concis:
Résumé
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!