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
|
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.Security.Cryptography.SymmetricAlgorithm
System.Security.Cryptography.Aes
System.Security.Cryptography.AesCryptoServiceProvider
Assembly : System.Core (dans System.Core.dll)
Le type AesCryptoServiceProvider expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
AesCryptoServiceProvider | Initialise une nouvelle instance de la classe AesCryptoServiceProvider. |
| Nom | Description | |
|---|---|---|
|
BlockSize | Obtient ou définit la taille de bloc, en bits, de l'opération de chiffrement. (Hérité de SymmetricAlgorithm.) |
|
FeedbackSize | Obtient ou définit la taille des commentaires, en bits, de l'opération de chiffrement. (Hérité de SymmetricAlgorithm.) |
|
IV | Obtient ou définit le vecteur d'initialisation (IV) pour l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
Key | Obtient ou définit la clé symétrique utilisée pour le chiffrement et le déchiffrement. (Substitue SymmetricAlgorithm.Key.) |
|
KeySize | Obtient ou définit la taille, en bits, de la clé secrète. (Substitue SymmetricAlgorithm.KeySize.) |
|
LegalBlockSizes | Obtient les tailles de bloc, en octets, prises en charge par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
LegalKeySizes | Obtient les tailles de clé, en octets, prises en charge par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
Mode | Obtient ou définit le mode de fonctionnement pour l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
Padding | Obtient ou définit le mode de remplissage utilisé dans l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
| Nom | Description | |
|---|---|---|
|
Clear | Libère toutes les ressources utilisées par la classe SymmetricAlgorithm. (Hérité de SymmetricAlgorithm.) |
|
CreateDecryptor() | Crée un objet déchiffreur AES symétrique avec la clé et le vecteur d'initialisation actuels. (Substitue SymmetricAlgorithm.CreateDecryptor().) |
|
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[]).) |
|
CreateEncryptor() | Crée un objet chiffreur AES symétrique avec la clé et le vecteur d'initialisation actuels. (Substitue SymmetricAlgorithm.CreateEncryptor().) |
|
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[]).) |
|
Dispose() | Libère toutes les ressources utilisées par l'instance actuelle de la classe SymmetricAlgorithm. (Hérité de SymmetricAlgorithm.) |
|
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.) |
|
Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
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.) |
|
GenerateIV | Génère un vecteur d'initialisation aléatoire à utiliser pour l'algorithme. (Substitue SymmetricAlgorithm.GenerateIV().) |
|
GenerateKey | Génère une clé aléatoire à utiliser pour l'algorithme. (Substitue SymmetricAlgorithm.GenerateKey().) |
|
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
|
ValidKeySize | Détermine si la taille de clé spécifiée est valide pour l'algorithme en cours. (Hérité de SymmetricAlgorithm.) |
| Nom | Description | |
|---|---|---|
|
BlockSizeValue | Représente la taille de bloc, en bits, de l'opération de chiffrement. (Hérité de SymmetricAlgorithm.) |
|
FeedbackSizeValue | Représente la taille des commentaires, en bits, de l'opération de chiffrement. (Hérité de SymmetricAlgorithm.) |
|
IVValue | Représente le vecteur d'initialisation (IV) pour l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
KeySizeValue | Représente la taille, en bits, de la clé secrète utilisée par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
KeyValue | Représente la clé secrète pour l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
LegalBlockSizesValue | Spécifie les tailles de bloc, en octets, prises en charge par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
LegalKeySizesValue | Spécifie les tailles de clé, en octets, prises en charge par l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
ModeValue | Représente le mode de chiffrement utilisé dans l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
|
PaddingValue | Représente le mode de remplissage utilisé dans l'algorithme symétrique. (Hérité de SymmetricAlgorithm.) |
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; } } }
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.
Remarque