RC2CryptoServiceProvider Clase

Definición

Precaución

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

Define un objeto contenedor para acceder a la implementación del proveedor de servicios criptográficos (CSP) del RC2 algoritmo. Esta clase no puede heredarse.

public ref class RC2CryptoServiceProvider sealed : System::Security::Cryptography::RC2
[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 RC2CryptoServiceProvider : System.Security.Cryptography.RC2
public sealed class RC2CryptoServiceProvider : System.Security.Cryptography.RC2
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class RC2CryptoServiceProvider : System.Security.Cryptography.RC2
[<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}")>]
type RC2CryptoServiceProvider = class
    inherit RC2
type RC2CryptoServiceProvider = class
    inherit RC2
[<System.Runtime.InteropServices.ComVisible(true)>]
type RC2CryptoServiceProvider = class
    inherit RC2
Public NotInheritable Class RC2CryptoServiceProvider
Inherits RC2
Herencia
RC2CryptoServiceProvider
Atributos

Ejemplos

En el ejemplo de código siguiente se cifra y, a continuación, se descifra una cadena.

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

namespace RC2CryptoServiceProvider_Examples
{
    class MyMainClass
    {
        public static void Main()
        {

            // Create a new instance of the RC2CryptoServiceProvider class
            // and automatically generate a Key and IV.
            RC2CryptoServiceProvider rc2CSP = new RC2CryptoServiceProvider();

            Console.WriteLine("Effective key size is {0} bits.", rc2CSP.EffectiveKeySize);

            // Get the key and IV.
            byte[] key = rc2CSP.Key;
            byte[] IV = rc2CSP.IV;

            // Get an encryptor.
            ICryptoTransform encryptor = rc2CSP.CreateEncryptor(key, IV);

            // Encrypt the data as an array of encrypted bytes in memory.
            MemoryStream msEncrypt = new MemoryStream();
            CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);

            // Convert the data to a byte array.
            string original = "Here is some data to encrypt.";
            byte[] toEncrypt = Encoding.ASCII.GetBytes(original);

            // Write all data to the crypto stream and flush it.
            csEncrypt.Write(toEncrypt, 0, toEncrypt.Length);
            csEncrypt.FlushFinalBlock();

            // Get the encrypted array of bytes.
            byte[] encrypted = msEncrypt.ToArray();

            ///////////////////////////////////////////////////////
            // This is where the data could be transmitted or saved.
            ///////////////////////////////////////////////////////

            //Get a decryptor that uses the same key and IV as the encryptor.
            ICryptoTransform decryptor = rc2CSP.CreateDecryptor(key, IV);

            // Now decrypt the previously encrypted message using the decryptor
            // obtained in the above step.
            MemoryStream msDecrypt = new MemoryStream(encrypted);
            CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read);

            // Read the decrypted bytes from the decrypting stream
            // and place them in a StringBuilder class.

            StringBuilder roundtrip = new StringBuilder();

            int b = 0;

            do
            {
                b = csDecrypt.ReadByte();

                if (b != -1)
                {
                    roundtrip.Append((char)b);
                }
            } while (b != -1);

            // Display the original data and the decrypted data.
            Console.WriteLine("Original:   {0}", original);
            Console.WriteLine("Round Trip: {0}", roundtrip);
        }
    }
}
Imports System.IO
Imports System.Text
Imports System.Security.Cryptography



Module Crypto

    Sub Main()

        ' Create a new instance of the RC2CryptoServiceProvider class
        ' and automatically generate a Key and IV.
        Dim rc2CSP As New RC2CryptoServiceProvider()

        Console.WriteLine("Effective key size is {0} bits.", rc2CSP.EffectiveKeySize)

        ' Get the key and IV.
        Dim key As Byte() = rc2CSP.Key
        Dim IV As Byte() = rc2CSP.IV

        ' Get an encryptor.
        Dim encryptor As ICryptoTransform = rc2CSP.CreateEncryptor(key, IV)

        ' Encrypt the data as an array of encrypted bytes in memory.
        Dim msEncrypt As New MemoryStream()
        Dim csEncrypt As New CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)

        ' Convert the data to a byte array.
        Dim original As String = "Here is some data to encrypt."
        Dim toEncrypt As Byte() = Encoding.ASCII.GetBytes(original)

        ' Write all data to the crypto stream and flush it.
        csEncrypt.Write(toEncrypt, 0, toEncrypt.Length)
        csEncrypt.FlushFinalBlock()

        ' Get the encrypted array of bytes.
        Dim encrypted As Byte() = msEncrypt.ToArray()

        '''''''''''''''''''''''''''''''''''''''''''''''''''''''
        ' This is where the data could be transmitted or saved.
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''

        'Get a decryptor that uses the same key and IV as the encryptor.
        Dim decryptor As ICryptoTransform = rc2CSP.CreateDecryptor(key, IV)

        ' Now decrypt the previously encrypted message using the decryptor
        ' obtained in the above step.
        Dim msDecrypt As New MemoryStream(encrypted)
        Dim csDecrypt As New CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)

        ' Read the decrypted bytes from the decrypting stream
        ' and place them in a StringBuilder class.
        Dim roundtrip As New StringBuilder()

        Dim b As Integer = 0

        Do
            b = csDecrypt.ReadByte()

            If b <> -1 Then
                roundtrip.Append(ChrW(b))
            End If
        Loop While b <> -1

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

    End Sub
End Module

Comentarios

La RC2CryptoServiceProvider implementación admite longitudes de clave de 40 bits a 128 bits en incrementos de 8 bits.

El RC2CryptoServiceProvider objeto es un cifrado de bloques que cifra y descifra los datos en bloques de 8 bytes. Esta clase rellena el bloque final de datos si es inferior a 8 bytes. Como resultado de este relleno, la longitud de los datos cifrados podría ser mayor que el texto no cifrado original.

Tenga en cuenta que el RC2CryptoServiceProvider objeto no usa sal.

Note

Hay disponible un algoritmo de cifrado simétrico más reciente, Advanced Encryption Standard (AES). Considere la posibilidad de usar el Aes algoritmo y sus clases derivadas en lugar de la RC2CryptoServiceProvider clase . Use RC2CryptoServiceProvider solo para la compatibilidad con aplicaciones y datos heredados.

Constructores

Nombre Description
RC2CryptoServiceProvider()
Obsoletos.

Inicializa una nueva instancia de la clase RC2CryptoServiceProvider.

Campos

Nombre Description
BlockSizeValue
Obsoletos.

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

(Heredado de SymmetricAlgorithm)
EffectiveKeySizeValue
Obsoletos.

Representa el tamaño efectivo de la clave secreta utilizada por el RC2 algoritmo en bits.

(Heredado de RC2)
FeedbackSizeValue
Obsoletos.

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

(Heredado de SymmetricAlgorithm)
IVValue
Obsoletos.

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

(Heredado de SymmetricAlgorithm)
KeySizeValue
Obsoletos.

Representa el tamaño, en bits, de la clave secreta utilizada por 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, que son compatibles con el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
LegalKeySizesValue
Obsoletos.

Especifica los tamaños de clave, en bits, que son compatibles con el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
ModeValue
Obsoletos.

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

(Heredado de SymmetricAlgorithm)
PaddingValue
Obsoletos.

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

(Heredado de SymmetricAlgorithm)

Propiedades

Nombre Description
BlockSize
Obsoletos.

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

(Heredado de SymmetricAlgorithm)
EffectiveKeySize
Obsoletos.

Obtiene o establece el tamaño efectivo, en bits, de la clave secreta utilizada por el RC2 algoritmo.

FeedbackSize
Obsoletos.

Obtiene o establece el tamaño de comentarios, en bits, de la operación criptográfica para 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) para el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
Key
Obsoletos.

Obtiene o establece la clave secreta para el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
KeySize
Obsoletos.

Obtiene o establece el tamaño de la clave secreta utilizada por el RC2 algoritmo en bits.

(Heredado de RC2)
LegalBlockSizes
Obsoletos.

Obtiene los tamaños de bloque, en bits, que son compatibles con el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
LegalKeySizes
Obsoletos.

Obtiene los tamaños de clave, en bits, que son compatibles con el algoritmo simétrico.

(Heredado de SymmetricAlgorithm)
Mode
Obsoletos.

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

(Heredado de SymmetricAlgorithm)
Padding
Obsoletos.

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

(Heredado de SymmetricAlgorithm)
UseSalt
Obsoletos.

Obtiene o establece un valor que determina si se va a crear una clave con una sal de valor cero de 11 bytes.

Métodos

Nombre Description
Clear()
Obsoletos.

Libera todos los recursos usados por la SymmetricAlgorithm clase .

(Heredado de SymmetricAlgorithm)
CreateDecryptor()
Obsoletos.

Crea un objeto de descifrador simétrico con la propiedad actual Key y el vector de inicialización (IV).

(Heredado de SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])
Obsoletos.

Crea un objeto de descifrador simétrico RC2 con la clave especificada (Key) y el vector de inicialización (IV).

CreateEncryptor()
Obsoletos.

Crea un objeto encryptor simétrico con la propiedad actual Key y el vector de inicialización (IV).

(Heredado de SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])
Obsoletos.

Crea un objeto encryptor simétrico RC2 con la clave especificada (Key) y el vector de inicialización (IV).

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 mediante 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, mediante 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 SymmetricAlgorithm clase .

(Heredado de SymmetricAlgorithm)
Dispose(Boolean)
Obsoletos.

Libera los recursos no administrados utilizados por SymmetricAlgorithm y, opcionalmente, 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 mediante 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, mediante 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 al objeto actual.

(Heredado de Object)
GenerateIV()
Obsoletos.

Genera un vector de inicialización aleatorio (IV) que se usará para el algoritmo.

GenerateKey()
Obsoletos.

Genera una clave aleatoria (Key) que se va a usar para el algoritmo.

GetCiphertextLengthCbc(Int32, PaddingMode)
Obsoletos.

Obtiene la longitud de un texto cifrado con un determinado modo de relleno y 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 determinado modo de relleno y longitud de texto no cifrado en modo ECB.

(Heredado de SymmetricAlgorithm)
GetHashCode()
Obsoletos.

Actúa como 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 Objectactual.

(Heredado de Object)
SetKey(ReadOnlySpan<Byte>)
Obsoletos.

Establece la clave de esta instancia.

(Heredado de SymmetricAlgorithm)
SetKeyCore(ReadOnlySpan<Byte>)
Obsoletos.

Establece la clave de esta instancia.

(Heredado de SymmetricAlgorithm)
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 datos en el búfer especificado mediante el modo CBC con el modo de relleno especificado.

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

Cuando se reemplaza en una clase derivada, intenta descifrar los datos en el búfer especificado, mediante 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, mediante 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 mediante el modo CBC con el modo de relleno especificado.

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

Cuando se reemplaza en una clase derivada, intenta cifrar los datos en el búfer especificado, mediante 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 mediante 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 reemplaza en una clase derivada, intenta cifrar los datos en el búfer especificado, mediante 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 mediante 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

Nombre Description
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 utilizados por SymmetricAlgorithm y, opcionalmente, libera los recursos administrados.

(Heredado de SymmetricAlgorithm)

Se aplica a

Consulte también