RC2CryptoServiceProvider Classe

Définition

Attention

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

Définit un objet de wrapper pour accéder à l'implémentation du fournisseur de services de chiffrement (CSP) de l'algorithme RC2. Cette classe ne peut pas être héritée.

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

Exemples

L’exemple de code suivant chiffre, puis déchiffre une chaîne.

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

Remarques

L’implémentation RC2CryptoServiceProvider prend en charge les longueurs de clés de 40 bits à 128 bits par incréments de 8 bits.

L’objet RC2CryptoServiceProvider est un chiffrement de blocs qui chiffre et déchiffre les données dans des blocs de 8 octets. Cette classe pads le dernier bloc de données s’il est inférieur à 8 octets. À la suite de ce remplissage, la longueur des données chiffrées peut être supérieure au texte en clair d’origine.

Notez que l’objet RC2CryptoServiceProvider n’utilise pas de sel.

Notes

Un algorithme de chiffrement symétrique plus récent, AES (Advanced Encryption Standard), est disponible. Envisagez d’utiliser l’algorithme Aes et ses classes dérivées au lieu de la RC2CryptoServiceProvider classe . Utilisez RC2CryptoServiceProvider uniquement pour la compatibilité avec les applications et données héritées.

Constructeurs

RC2CryptoServiceProvider()
Obsolète.

Initialise une nouvelle instance de la classe RC2CryptoServiceProvider.

Champs

BlockSizeValue
Obsolète.

Représente la taille de bloc, en bits, de l'opération de chiffrement.

(Hérité de SymmetricAlgorithm)
EffectiveKeySizeValue
Obsolète.

Représente la taille effective de la clé secrète utilisée par l'algorithme RC2, en bits.

(Hérité de RC2)
FeedbackSizeValue
Obsolète.

Représente la taille des commentaires, en bits, de l'opération de chiffrement.

(Hérité de SymmetricAlgorithm)
IVValue
Obsolète.

Représente le vecteur d'initialisation (IV) pour l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
KeySizeValue
Obsolète.

Représente la taille, en bits, de la clé secrète utilisée par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
KeyValue
Obsolète.

Représente la clé secrète pour l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
LegalBlockSizesValue
Obsolète.

Spécifie les tailles de bloc, en octets, prises en charge par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
LegalKeySizesValue
Obsolète.

Spécifie les tailles de clé, en octets, prises en charge par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
ModeValue
Obsolète.

Représente le mode de chiffrement utilisé dans l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
PaddingValue
Obsolète.

Représente le mode de remplissage utilisé dans l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)

Propriétés

BlockSize
Obsolète.

Obtient ou définit la taille de bloc, en bits, de l'opération de chiffrement.

(Hérité de SymmetricAlgorithm)
EffectiveKeySize
Obsolète.

Obtient ou définit la taille effective, en bits, de la clé secrète utilisée par l'algorithme RC2.

FeedbackSize
Obsolète.

Obtient ou définit la taille des commentaires, en bits, de l’opération de chiffrement pour les modes de chiffrement CFB (Cipher Feedback) et OFB (Output Feedback).

(Hérité de SymmetricAlgorithm)
IV
Obsolète.

Obtient ou définit le vecteur d'initialisation (IV) pour l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
Key
Obsolète.

Obtient ou définit la clé secrète pour l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
KeySize
Obsolète.

Obtient ou définit la taille de la clé secrète utilisée par l’algorithme RC2 en bits.

(Hérité de RC2)
LegalBlockSizes
Obsolète.

Obtient les tailles de bloc, en octets, prises en charge par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
LegalKeySizes
Obsolète.

Obtient les tailles de clé, en octets, prises en charge par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
Mode
Obsolète.

Obtient ou définit le mode de fonctionnement pour l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
Padding
Obsolète.

Obtient ou définit le mode de remplissage utilisé dans l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
UseSalt
Obsolète.

Obtient ou définit une valeur qui détermine l'opportunité de créer une clé avec un salt de valeur zéro et de 11 octets de longueur.

Méthodes

Clear()
Obsolète.

Libère toutes les ressources utilisées par la classe SymmetricAlgorithm.

(Hérité de SymmetricAlgorithm)
CreateDecryptor()
Obsolète.

Crée un objet déchiffreur symétrique avec la propriété Key et le vecteur d'initialisation (IV) actuels.

(Hérité de SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])
Obsolète.

Crée un objet déchiffreur RC2 symétrique avec la clé spécifiée (Key) et le vecteur d’initialisation (IV).

CreateEncryptor()
Obsolète.

Crée un objet chiffreur symétrique avec la propriété Key et le vecteur d'initialisation (IV) actuels.

(Hérité de SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])
Obsolète.

Crée un objet chiffreur RC2 symétrique avec la clé spécifiée (Key) et le vecteur d'initialisation (IV).

DecryptCbc(Byte[], Byte[], PaddingMode)
Obsolète.

Déchiffre les données à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Obsolète.

Déchiffre les données à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsolète.

Déchiffre les données dans la mémoire tampon spécifiée, à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)
Obsolète.

Déchiffre les données à l’aide du mode CFB avec le mode de remplissage et la taille des commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Obsolète.

Déchiffre les données à l’aide du mode CFB avec le mode de remplissage et la taille des commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsolète.

Déchiffre les données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille des commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)
Obsolète.

Déchiffre les données à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Obsolète.

Déchiffre les données à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsolète.

Déchiffre les données dans la mémoire tampon spécifiée, à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
Dispose()
Obsolète.

Libère toutes les ressources utilisées par l'instance actuelle de la classe SymmetricAlgorithm.

(Hérité de SymmetricAlgorithm)
Dispose(Boolean)
Obsolète.

Libère les ressources non managées utilisées par SymmetricAlgorithm et libère éventuellement les ressources managées.

(Hérité de SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)
Obsolète.

Chiffre les données à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Obsolète.

Chiffre les données à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsolète.

Chiffre les données dans la mémoire tampon spécifiée, en utilisant le mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)
Obsolète.

Chiffre les données à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Obsolète.

Chiffre les données à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsolète.

Chiffre les données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)
Obsolète.

Chiffre les données à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Obsolète.

Chiffre les données à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsolète.

Chiffre les données dans la mémoire tampon spécifiée, à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
Equals(Object)
Obsolète.

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GenerateIV()
Obsolète.

Génère un vecteur d'initialisation aléatoire (IV) à utiliser pour l'algorithme.

GenerateKey()
Obsolète.

Génère une clé aléatoire (Key) à utiliser pour l'algorithme.

GetCiphertextLengthCbc(Int32, PaddingMode)
Obsolète.

Obtient la longueur d’un texte de chiffrement avec un mode de remplissage donné et une longueur en texte clair en mode CBC.

(Hérité de SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)
Obsolète.

Obtient la longueur d’un texte de chiffrement avec un mode de remplissage donné et une longueur en texte clair en mode CFB.

(Hérité de SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)
Obsolète.

Obtient la longueur d’un texte de chiffrement avec un mode de remplissage donné et une longueur en texte clair en mode BCE.

(Hérité de SymmetricAlgorithm)
GetHashCode()
Obsolète.

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()
Obsolète.

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()
Obsolète.

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()
Obsolète.

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Obsolète.

Tente de déchiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsolète.

En cas de substitution dans une classe dérivée, tente de déchiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Obsolète.

Tente de déchiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Obsolète.

En cas de substitution dans une classe dérivée, tente de déchiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsolète.

Tente de déchiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsolète.

En cas de substitution dans une classe dérivée, tente de déchiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Obsolète.

Tente de chiffrer des données dans la mémoire tampon spécifiée, à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsolète.

En cas de substitution dans une classe dérivée, tente de chiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Obsolète.

Tente de chiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille des commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Obsolète.

En cas de substitution dans une classe dérivée, tente de chiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsolète.

Tente de chiffrer des données dans la mémoire tampon spécifiée, à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsolète.

En cas de substitution dans une classe dérivée, tente de chiffrer les données dans la mémoire tampon spécifiée, à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
ValidKeySize(Int32)
Obsolète.

Détermine si la taille de clé spécifiée est valide pour l'algorithme en cours.

(Hérité de SymmetricAlgorithm)

Implémentations d’interfaces explicites

IDisposable.Dispose()

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Obsolète.

Libère les ressources non managées utilisées par SymmetricAlgorithm et libère éventuellement les ressources managées.

(Hérité de SymmetricAlgorithm)

S’applique à

Voir aussi