Leer en inglés

Compartir a través de


AesCryptoServiceProvider Clase

Definición

Precaución

Derived cryptographic types are obsolete. Use the Create method on the base type instead.

Realiza el cifrado y descifrado simétricos mediante la implementación de interfaces de programación de aplicaciones criptográficas (CAPI) del algoritmo del estándar de cifrado avanzado (AES).

C#
public sealed class AesCryptoServiceProvider : System.Security.Cryptography.Aes
C#
[System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class AesCryptoServiceProvider : System.Security.Cryptography.Aes
Herencia
AesCryptoServiceProvider
Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo cifrar y descifrar datos de ejemplo mediante la AesCryptoServiceProvider clase .

C#
using System;
using System.IO;
using System.Security.Cryptography;

namespace Aes_Example
{
    class AesExample
    {
        public static void Main()
        {
            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);
            }
        }
        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 AesCryptoServiceProvider object
            // with the specified key and IV.
            using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider())
            {
                aesAlg.Key = Key;
                aesAlg.IV = IV;

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

                // Create a decryptor 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;
        }
    }
}

Constructores

AesCryptoServiceProvider()
Obsoletos.

Inicializa una nueva instancia de la clase AesCryptoServiceProvider.

Campos

BlockSizeValue
Obsoletos.

Representa el tamaño del bloque de la operación criptográfica en bits.

(Heredado de SymmetricAlgorithm)
FeedbackSizeValue
Obsoletos.

Representa el tamaño de respuesta de la operación criptográfica en bits.

(Heredado de SymmetricAlgorithm)
IVValue
Obsoletos.

Representa el vector de inicialización (IV) del algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
KeySizeValue
Obsoletos.

Representa el tamaño en bits de la clave secreta que usa el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
KeyValue
Obsoletos.

Representa la clave secreta del algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
LegalBlockSizesValue
Obsoletos.

Especifica los tamaños de bloque, en bits, admitidos por el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
LegalKeySizesValue
Obsoletos.

Especifica los tamaños de clave, en bits, admitidos por el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
ModeValue
Obsoletos.

Representa el modo de cifrado usado en el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
PaddingValue
Obsoletos.

Representa el modo de relleno usado en el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)

Propiedades

BlockSize
Obsoletos.

Obtiene o establece el tamaño del bloque de la operación criptográfica en bits.

BlockSize
Obsoletos.

Obtiene o establece el tamaño del bloque de la operación criptográfica en bits.

(Heredado de SymmetricAlgorithm)
FeedbackSize
Obsoletos.

Obtiene o establece el tamaño de los comentarios, en bits, de la operación criptográfica de los modos de cifrado Comentarios de cifrado (CFB) y Comentarios de salida (OFB).

FeedbackSize
Obsoletos.

Obtiene o establece el tamaño de los comentarios, en bits, de la operación criptográfica de los modos de cifrado Comentarios de cifrado (CFB) y Comentarios de salida (OFB).

(Heredado de SymmetricAlgorithm)
IV
Obsoletos.

Obtiene o establece el vector de inicialización (IV) del algoritmo simétrico.

IV
Obsoletos.

Obtiene o establece el vector de inicialización (IV) del algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
Key
Obsoletos.

Obtiene o establece la clave simétrica que se utiliza para el cifrado y descifrado.

KeySize
Obsoletos.

Obtiene o establece el tamaño, en bits, de la clave secreta.

LegalBlockSizes
Obsoletos.

Obtiene los tamaños de bloque, en bits, admitidos por el algoritmo simétrico.

LegalBlockSizes
Obsoletos.

Obtiene los tamaños de bloque, en bits, admitidos por el algoritmo simétrico.

(Heredado de Aes)
LegalKeySizes
Obsoletos.

Obtiene los tamaños de clave, en bits, admitidos por el algoritmo simétrico.

LegalKeySizes
Obsoletos.

Obtiene los tamaños de clave, en bits, admitidos por el algoritmo simétrico.

(Heredado de Aes)
Mode
Obsoletos.

Obtiene o establece el modo de funcionamiento del algoritmo simétrico.

Mode
Obsoletos.

Obtiene o establece el modo de funcionamiento del algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
Padding
Obsoletos.

Obtiene o establece el modo de relleno usado en el algoritmo simétrico.

Padding
Obsoletos.

Obtiene o establece el modo de relleno usado en el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)

Métodos

Clear()
Obsoletos.

Libera todos los recursos que utiliza la clase SymmetricAlgorithm.

(Heredado de SymmetricAlgorithm)
CreateDecryptor()
Obsoletos.

Crea un objeto descifrador AES simétrico que utiliza la clave y el vector de inicialización (IV) actuales.

CreateDecryptor(Byte[], Byte[])
Obsoletos.

Crea un objeto descifrador AES simétrico que utiliza la clave y el vector de inicialización (IV) especificados.

CreateEncryptor()
Obsoletos.

Crea un objeto cifrador AES simétrico que utiliza la clave y el vector de inicialización (IV) actuales.

CreateEncryptor(Byte[], Byte[])
Obsoletos.

Crea un objeto cifrador simétrico que utiliza la clave y el vector de inicialización (IV) especificados.

DecryptCbc(Byte[], Byte[], PaddingMode)
Obsoletos.

Descifra los datos mediante el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Obsoletos.

Descifra los datos mediante el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoletos.

Descifra los datos en el búfer especificado, utilizando el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)
Obsoletos.

Descifra los datos mediante el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Obsoletos.

Descifra los datos mediante el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoletos.

Descifra los datos en el búfer especificado, utilizando el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)
Obsoletos.

Descifra los datos mediante el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Obsoletos.

Descifra los datos mediante el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoletos.

Descifra los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
Dispose()
Obsoletos.

Libera todos los recursos usados por la instancia actual de la clase SymmetricAlgorithm.

(Heredado de SymmetricAlgorithm)
Dispose(Boolean)
Obsoletos.

Libera los recursos no administrados que usa SymmetricAlgorithm y, de forma opcional, libera los recursos administrados.

(Heredado de SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)
Obsoletos.

Cifra los datos mediante el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Obsoletos.

Cifra los datos mediante el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoletos.

Cifra los datos en el búfer especificado, utilizando el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)
Obsoletos.

Cifra los datos mediante el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Obsoletos.

Cifra los datos mediante el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoletos.

Cifra los datos en el búfer especificado, utilizando el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)
Obsoletos.

Cifra los datos mediante el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Obsoletos.

Cifra los datos mediante el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoletos.

Cifra los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
Equals(Object)
Obsoletos.

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GenerateIV()
Obsoletos.

Genera un vector de inicialización aleatorio (IV) que se va a utilizar para el algoritmo.

GenerateKey()
Obsoletos.

Genera una clave aleatoria que se utiliza para el algoritmo.

GetCiphertextLengthCbc(Int32, PaddingMode)
Obsoletos.

Obtiene la longitud de un texto cifrado con un modo de relleno determinado y la longitud de texto no cifrado en modo CBC.

(Heredado de SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)
Obsoletos.

Obtiene la longitud de un texto cifrado con un modo de relleno determinado y la longitud de texto no cifrado en modo CFB.

(Heredado de SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)
Obsoletos.

Obtiene la longitud de un texto cifrado con un modo de relleno determinado y la longitud de texto no cifrado en modo ECB.

(Heredado de SymmetricAlgorithm)
GetHashCode()
Obsoletos.

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()
Obsoletos.

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()
Obsoletos.

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()
Obsoletos.

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Obsoletos.

Intenta descifrar los datos en el búfer especificado, utilizando el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoletos.

Cuando se invalida en una clase derivada, intenta descifrar los datos en el búfer especificado, utilizando el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Obsoletos.

Intenta descifrar los datos en el búfer especificado, usando el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Obsoletos.

Cuando se invalida en una clase derivada, intenta descifrar los datos en el búfer especificado, utilizando el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoletos.

Intenta descifrar los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoletos.

Cuando se invalida en una clase derivada, intenta descifrar los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Obsoletos.

Intenta cifrar los datos en el búfer especificado, utilizando el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoletos.

Cuando se invalida en una clase derivada, intenta cifrar los datos en el búfer especificado, utilizando el modo CBC con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Obsoletos.

Intenta cifrar los datos en el búfer especificado, utilizando el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Obsoletos.

Cuando se invalida en una clase derivada, intenta cifrar los datos en el búfer especificado, utilizando el modo CFB con el modo de relleno y el tamaño de comentarios especificados.

(Heredado de SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoletos.

Intenta cifrar los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoletos.

Cuando se invalida en una clase derivada, intenta cifrar los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado.

(Heredado de SymmetricAlgorithm)
ValidKeySize(Int32)
Obsoletos.

Determina si el tamaño de clave especificado es válido para el algoritmo actual.

(Heredado de SymmetricAlgorithm)

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código.

Obsoletos.

Libera los recursos no administrados que usa SymmetricAlgorithm y, de forma opcional, libera los recursos administrados.

(Heredado de SymmetricAlgorithm)

Se aplica a

Producto Versiones (Obsoleto)
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5 (6, 7, 8, 9)
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1