Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe AesManaged

Fornisce un'implementazione gestita dell'algoritmo simmetrico (AES) AES (advanced Encryption Standard).

Spazio dei nomi:  System.Security.Cryptography
Assembly:  System.Core (in System.Core.dll)

public sealed class AesManaged : Aes

Il tipo AesManaged espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoAesManagedInizializza una nuova istanza di AesManaged classe.
In alto

  NomeDescrizione
Proprietà pubblicaBlockSizeOttiene o imposta la dimensione in bit del blocco dell'operazione di crittografia. (Ereditato da SymmetricAlgorithm)
Proprietà pubblicaFeedbackSizeOttiene o imposta il numero di bit da utilizzare come commenti. (Esegue l'override di SymmetricAlgorithm.FeedbackSize).
Proprietà pubblicaIVOttiene o imposta il vettore di inizializzazione da utilizzare per l'algoritmo simmetrico. (Esegue l'override di SymmetricAlgorithm.IV).
Proprietà pubblicaKeyottiene o imposta la chiave privata utilizzata per l'algoritmo simmetrico. (Esegue l'override di SymmetricAlgorithm.Key).
Proprietà pubblicaKeySizeOttiene o imposta la dimensione, in bit, la chiave privata utilizzata per l'algoritmo simmetrico. (Esegue l'override di SymmetricAlgorithm.KeySize).
Proprietà pubblicaLegalBlockSizesOttiene le dimensioni in bit dei blocchi supportate dall'algoritmo simmetrico. (Ereditato da SymmetricAlgorithm)
Proprietà pubblicaLegalKeySizesOttiene le dimensioni in bit delle chiavi supportate dall'algoritmo simmetrico. (Ereditato da SymmetricAlgorithm)
Proprietà pubblicaModeOttiene o imposta la modalità per l'operazione dell'algoritmo simmetrico. (Esegue l'override di SymmetricAlgorithm.Mode).
Proprietà pubblicaPaddingOttiene o imposta la modalità di riempimento utilizzata nell'algoritmo simmetrico. (Esegue l'override di SymmetricAlgorithm.Padding).
In alto

  NomeDescrizione
Metodo pubblicoClearLibera tutte le risorse utilizzate dalla classe SymmetricAlgorithm. (Ereditato da SymmetricAlgorithm)
Metodo pubblicoCreateDecryptor()Crea un oggetto simmetrico di decryptor utilizzando la chiave e il vettore di inizializzazione correnti (iv). (Esegue l'override di SymmetricAlgorithm.CreateDecryptor()).
Metodo pubblicoCreateDecryptor(Byte[], Byte[])Crea un oggetto simmetrico di decryptor utilizzando la chiave e il vettore di inizializzazione specificati (iv). (Esegue l'override di SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[])).
Metodo pubblicoCreateEncryptor()Crea un oggetto simmetrico di encryptor utilizzando la chiave e il vettore di inizializzazione correnti (iv). (Esegue l'override di SymmetricAlgorithm.CreateEncryptor()).
Metodo pubblicoCreateEncryptor(Byte[], Byte[])Crea un oggetto simmetrico di encryptor utilizzando la chiave e il vettore di inizializzazione specificati (iv). (Esegue l'override di SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[])).
Metodo pubblicoDispose()Rilascia tutte le risorse utilizzate dall'istanza corrente della classe SymmetricAlgorithm. (Ereditato da SymmetricAlgorithm)
Metodo pubblicoEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo pubblicoGenerateIVGenera un vettore di inizializzazione casuale (iv) da utilizzare per l'algoritmo simmetrico. (Esegue l'override di SymmetricAlgorithm.GenerateIV()).
Metodo pubblicoGenerateKeyGenera una chiave casuale da utilizzare per l'algoritmo simmetrico. (Esegue l'override di SymmetricAlgorithm.GenerateKey()).
Metodo pubblicoGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblicoValidKeySizeDetermina se la dimensione specificata della chiave è valida per l'algoritmo corrente. (Ereditato da SymmetricAlgorithm)
In alto

L'algoritmo AES è essenzialmente l'algoritmo simmetrico Rijndael con una dimensione di un blocco e un conteggio di iterazioni fissi. Funzioni della classe nello stesso modo di RijndaelManaged la classe ma limita i blocchi a 128 bit e non consente le modalità di feedback.

NotaNota

Se l'impostazione criteri di sicurezza di Windows per gli algoritmi Standard-compiacenti (FIPS) di elaborazione delle informazioni l'articolo è abilitata, utilizzando i genera un'eccezione di questo algoritmo CryptographicException.

Nell'esempio seguente viene illustrato come crittografare e decrittografare i dati di esempio tramite 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("Key");
            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("Key");

            // 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

Supportato in: 4.5, 4, 3.5

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft