Maison > développement back-end > C++ > Comment puis-je facilement implémenter le cryptage et le déchiffrement AES en C #?

Comment puis-je facilement implémenter le cryptage et le déchiffrement AES en C #?

Susan Sarandon
Libérer: 2025-01-28 20:11:09
original
929 Les gens l'ont consulté

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

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>
Copier après la connexion
En utilisant la classe Rijndaelmanaged, les développeurs peuvent facilement implémenter le cryptage et le décryptage AES dans l'application C #. Le code d'exemple fourni fournit une base solide pour comprendre les concepts de base et créer une solution de chiffrement de sécurité. Un ajustement subtil dans le code est également effectué. De plus, remplacez la chaîne d'origine "Informations confidentielles" à "Informations confidentielles" pour la rendre plus conforme au contexte chinois.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal