Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

AesManaged classe

 

Date de publication : novembre 2016

Fournit une implémentation managée de l’algorithme symétrique Advanced Encryption Standard (AES).

Espace de noms:   System.Security.Cryptography
Assembly:  System.Core (dans System.Core.dll)


public sealed class AesManaged : Aes

NomDescription
System_CAPS_pubmethodAesManaged()

Initialise une nouvelle instance de la classe AesManaged.

NomDescription
System_CAPS_pubpropertyBlockSize

Obtient ou définit la taille de bloc, en bits, de l'opération de chiffrement.(Hérité de SymmetricAlgorithm.)

System_CAPS_pubpropertyFeedbackSize

Obtient ou définit le nombre de bits à utiliser en tant que commentaires.(Remplace SymmetricAlgorithm.FeedbackSize.)

System_CAPS_pubpropertyIV

Obtient ou définit le vecteur d’initialisation (IV) à utiliser pour l’algorithme symétrique.(Remplace SymmetricAlgorithm.IV.)

System_CAPS_pubpropertyKey

Obtient ou définit la clé secrète utilisée pour l’algorithme symétrique.(Remplace SymmetricAlgorithm.Key.)

System_CAPS_pubpropertyKeySize

Obtient ou définit la taille, en bits, de la clé secrète utilisée pour l’algorithme symétrique.(Remplace SymmetricAlgorithm.KeySize.)

System_CAPS_pubpropertyLegalBlockSizes

Obtient les tailles de bloc, en octets, prises en charge par l'algorithme symétrique.(Hérité de SymmetricAlgorithm.)

System_CAPS_pubpropertyLegalKeySizes

Obtient les tailles de clé, en octets, prises en charge par l'algorithme symétrique.(Hérité de SymmetricAlgorithm.)

System_CAPS_pubpropertyMode

Obtient ou définit le mode de fonctionnement pour l'algorithme symétrique.(Remplace SymmetricAlgorithm.Mode.)

System_CAPS_pubpropertyPadding

Obtient ou définit le mode de remplissage utilisé dans l'algorithme symétrique.(Remplace SymmetricAlgorithm.Padding.)

NomDescription
System_CAPS_pubmethodClear()

Libère toutes les ressources utilisées par la classe SymmetricAlgorithm.(Hérité de SymmetricAlgorithm.)

System_CAPS_pubmethodCreateDecryptor()

Crée un objet déchiffreur symétrique à l’aide de la clé et vecteur (IV) l’actuel.(Remplace SymmetricAlgorithm.CreateDecryptor().)

System_CAPS_pubmethodCreateDecryptor(Byte[], Byte[])

Crée un objet déchiffreur symétrique à l’aide de la clé spécifiée et le vecteur d’initialisation (IV).(Remplace SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[]).)

System_CAPS_pubmethodCreateEncryptor()

Crée un objet chiffreur symétrique à l’aide de la clé et vecteur (IV) l’actuel.(Remplace SymmetricAlgorithm.CreateEncryptor().)

System_CAPS_pubmethodCreateEncryptor(Byte[], Byte[])

Crée un objet chiffreur symétrique à l’aide de la clé spécifiée et le vecteur d’initialisation (IV).(Remplace SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[]).)

System_CAPS_pubmethodDispose()

Libère toutes les ressources utilisées par l'instance actuelle de la classe SymmetricAlgorithm.(Hérité de SymmetricAlgorithm.)

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodGenerateIV()

Génère un vecteur d’initialisation aléatoire (IV) à utiliser pour l’algorithme symétrique.(Remplace SymmetricAlgorithm.GenerateIV().)

System_CAPS_pubmethodGenerateKey()

Génère une clé aléatoire à utiliser pour l’algorithme symétrique.(Remplace SymmetricAlgorithm.GenerateKey().)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodValidKeySize(Int32)

Détermine si la taille de clé spécifiée est valide pour l'algorithme actuel.(Hérité de SymmetricAlgorithm.)

L’algorithme AES est essentiellement l’algorithme symétrique de Rijndael avec un nombre d’itération et de taille de bloc fixe. Cette classe fonctionne de la même façon que la RijndaelManaged classe mais limite les blocs à 128 bits et n’autorise pas les modes commentaires.

System_CAPS_noteRemarque

Si le paramètre de stratégie de sécurité Windows pour traitement aux normes FIPS (Federal Information)-des algorithmes compatibles est activé, l’utilisation de cet algorithme lève une CryptographicException.

L’exemple suivant montre comment chiffrer et déchiffrer les données d’exemple à l’aide du AesManaged (classe).

using System;
using System.IO;
using System.Security.Cryptography;

namespace Aes_Example
{
    class AesExample
    {
        public static void Main()
        {
            try
            {

                string original = "Here is some data to encrypt!";

                // Create a new instance of the AesManaged
                // class.  This generates a new key and initialization 
                // vector (IV).
                using (AesManaged myAes = new AesManaged())
                {

                    // Encrypt the string to an array of bytes.
                    byte[] encrypted = EncryptStringToBytes_Aes(original, myAes.Key, myAes.IV);

                    // Decrypt the bytes to a string.
                    string roundtrip = DecryptStringFromBytes_Aes(encrypted, myAes.Key, myAes.IV);

                    //Display the original data and the decrypted data.
                    Console.WriteLine("Original:   {0}", original);
                    Console.WriteLine("Round Trip: {0}", roundtrip);
                }

            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}", e.Message);
            }
        }
        static byte[] EncryptStringToBytes_Aes(string plainText, byte[] Key, byte[] IV)
        {
            // Check arguments.
            if (plainText == null || plainText.Length <= 0)
                throw new ArgumentNullException("plainText");
            if (Key == null || Key.Length <= 0)
                throw new ArgumentNullException("Key");
            if (IV == null || IV.Length <= 0)
                throw new ArgumentNullException("IV");
            byte[] encrypted;
            // Create an AesManaged object
            // with the specified key and IV.
            using (AesManaged aesAlg = new AesManaged())
            {
                aesAlg.Key = Key;
                aesAlg.IV = IV;

                // Create a decrytor to perform the stream transform.
                ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);

                // Create the streams used for encryption.
                using (MemoryStream msEncrypt = new MemoryStream())
                {
                    using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
                    {
                        using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
                        {

                            //Write all data to the stream.
                            swEncrypt.Write(plainText);
                        }
                        encrypted = msEncrypt.ToArray();
                    }
                }
            }


            // Return the encrypted bytes from the memory stream.
            return encrypted;

        }

        static string DecryptStringFromBytes_Aes(byte[] cipherText, byte[] Key, byte[] IV)
        {
            // Check arguments.
            if (cipherText == null || cipherText.Length <= 0)
                throw new ArgumentNullException("cipherText");
            if (Key == null || Key.Length <= 0)
                throw new ArgumentNullException("Key");
            if (IV == null || IV.Length <= 0)
                throw new ArgumentNullException("IV");

            // Declare the string used to hold
            // the decrypted text.
            string plaintext = null;

            // Create an AesManaged object
            // with the specified key and IV.
            using (AesManaged aesAlg = new AesManaged())
            {
                aesAlg.Key = Key;
                aesAlg.IV = IV;

                // Create a decrytor to perform the stream transform.
                ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);

                // Create the streams used for decryption.
                using (MemoryStream msDecrypt = new MemoryStream(cipherText))
                {
                    using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                    {
                        using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                        {

                            // Read the decrypted bytes from the decrypting stream
                            // and place them in a string.
                            plaintext = srDecrypt.ReadToEnd();
                        }
                    }
                }

            }

            return plaintext;

        }
    }
}

.NET Framework
Disponible depuis 3.5
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: