Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

AesCryptoServiceProvider, classe

Exécute un chiffrement et un déchiffrement symétriques à l'aide de l'implémentation CAPI (Cryptographic Application Programming Interfaces) de l'algorithme AES (Advanced Encryption Standard).

System.Object
  System.Security.Cryptography.SymmetricAlgorithm
    System.Security.Cryptography.Aes
      System.Security.Cryptography.AesCryptoServiceProvider

Espace de noms :  System.Security.Cryptography
Assembly :  System.Core (dans System.Core.dll)
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public sealed class AesCryptoServiceProvider : Aes

Le type AesCryptoServiceProvider expose les membres suivants.

  Nom Description
Méthode publique AesCryptoServiceProvider Initialise une nouvelle instance de la classe AesCryptoServiceProvider.
Début
  Nom Description
Propriété publique BlockSize Obtient ou définit la taille de bloc, en bits, de l'opération de chiffrement. (Hérité de SymmetricAlgorithm.)
Propriété publique FeedbackSize Obtient ou définit la taille des commentaires, en bits, de l'opération de chiffrement. (Hérité de SymmetricAlgorithm.)
Propriété publique IV Obtient ou définit le vecteur d'initialisation (IV) pour l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Propriété publique Key Obtient ou définit la clé symétrique utilisée pour le chiffrement et le déchiffrement. (Substitue SymmetricAlgorithm.Key.)
Propriété publique KeySize Obtient ou définit la taille, en bits, de la clé secrète. (Substitue SymmetricAlgorithm.KeySize.)
Propriété publique LegalBlockSizes Obtient les tailles de bloc, en octets, prises en charge par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Propriété publique LegalKeySizes Obtient les tailles de clé, en octets, prises en charge par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Propriété publique Mode Obtient ou définit le mode de fonctionnement pour l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Propriété publique Padding Obtient ou définit le mode de remplissage utilisé dans l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Début
  Nom Description
Méthode publique Clear Libère toutes les ressources utilisées par la classe SymmetricAlgorithm. (Hérité de SymmetricAlgorithm.)
Méthode publique CreateDecryptor() Crée un objet déchiffreur AES symétrique avec la clé et le vecteur d'initialisation actuels. (Substitue SymmetricAlgorithm.CreateDecryptor().)
Méthode publique CreateDecryptor(Byte[], Byte[]) Crée un objet déchiffreur AES symétrique avec la clé et le vecteur d'initialisation spécifiés. (Substitue SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[]).)
Méthode publique CreateEncryptor() Crée un objet chiffreur AES symétrique avec la clé et le vecteur d'initialisation actuels. (Substitue SymmetricAlgorithm.CreateEncryptor().)
Méthode publique CreateEncryptor(Byte[], Byte[]) Crée un objet chiffreur symétrique avec la clé et le vecteur d'initialisation spécifiés. (Substitue SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[]).)
Méthode publique Dispose() Libère toutes les ressources utilisées par l'instance actuelle de la classe SymmetricAlgorithm. (Hérité de SymmetricAlgorithm.)
Méthode protégée Dispose(Boolean) Libère les ressources non managées utilisées par SymmetricAlgorithm et libère éventuellement les ressources managées. (Hérité de SymmetricAlgorithm.)
Méthode publique Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GenerateIV Génère un vecteur d'initialisation aléatoire à utiliser pour l'algorithme. (Substitue SymmetricAlgorithm.GenerateIV().)
Méthode publique GenerateKey Génère une clé aléatoire à utiliser pour l'algorithme. (Substitue SymmetricAlgorithm.GenerateKey().)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode publique ValidKeySize Détermine si la taille de clé spécifiée est valide pour l'algorithme en cours. (Hérité de SymmetricAlgorithm.)
Début
  Nom Description
Champ protégé BlockSizeValue Représente la taille de bloc, en bits, de l'opération de chiffrement. (Hérité de SymmetricAlgorithm.)
Champ protégé FeedbackSizeValue Représente la taille des commentaires, en bits, de l'opération de chiffrement. (Hérité de SymmetricAlgorithm.)
Champ protégé IVValue Représente le vecteur d'initialisation (IV) pour l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Champ protégé KeySizeValue Représente la taille, en bits, de la clé secrète utilisée par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Champ protégé KeyValue Représente la clé secrète pour l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Champ protégé LegalBlockSizesValue Spécifie les tailles de bloc, en octets, prises en charge par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Champ protégé LegalKeySizesValue Spécifie les tailles de clé, en octets, prises en charge par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Champ protégé ModeValue Représente le mode de chiffrement utilisé dans l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Champ protégé PaddingValue Représente le mode de remplissage utilisé dans l'algorithme symétrique. (Hérité de SymmetricAlgorithm.)
Début
Remarque Remarque

L'attribut HostProtectionAttribute appliqué à ce type ou membre a la valeur de propriété Resources suivante : MayLeakOnAbort. HostProtectionAttribute n'affecte pas les applications bureautiques (qui sont généralement démarrées en double-cliquant sur une icône, en tapant une commande ou en entrant une URL dans un navigateur). Pour plus d'informations, consultez la classe HostProtectionAttribute ou Attributs de programmation et de protection des hôtes SQL Server.

L'exemple suivant montre comment chiffrer et déchiffrer les exemples de données à l'aide de la classe AesCryptoServiceProvider.


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 AesCryptoServiceProvider
                // class.  This generates a new key and initialization 
                // vector (IV).
                using (AesCryptoServiceProvider myAes = new AesCryptoServiceProvider())
                {

                    // 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("Key");
            byte[] encrypted;
            // Create an AesCryptoServiceProvider object
            // with the specified key and IV.
            using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider())
            {
                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("Key");

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

            // Create an AesCryptoServiceProvider object
            // with the specified key and IV.
            using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider())
            {
                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

Pris en charge dans : 4, 3.5

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Date

Historique

Motif

Mai 2010

Exemple ajouté.

Commentaires client.

Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ