RC2CryptoServiceProvider RC2CryptoServiceProvider RC2CryptoServiceProvider RC2CryptoServiceProvider Class

Définition

Définit un objet de wrapper pour accéder à l'implémentation du fournisseur de services de chiffrement (CSP) de l'algorithme RC2.Defines a wrapper object to access the cryptographic service provider (CSP) implementation of the RC2 algorithm. Cette classe ne peut pas être héritée.This class cannot be inherited.

public ref class RC2CryptoServiceProvider sealed : System::Security::Cryptography::RC2
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class RC2CryptoServiceProvider : System.Security.Cryptography.RC2
type RC2CryptoServiceProvider = class
    inherit RC2
Public NotInheritable Class RC2CryptoServiceProvider
Inherits RC2
Héritage
RC2CryptoServiceProviderRC2CryptoServiceProviderRC2CryptoServiceProviderRC2CryptoServiceProvider
Attributs

Exemples

L’exemple de code suivant chiffre et déchiffre ensuite une chaîne.The following code example encrypts and then decrypts a string.

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);

            Console.ReadLine();
        }
    }
}
Imports System
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)

        Console.ReadLine()

    End Sub
End Module

Remarques

Le RC2CryptoServiceProvider implémentation prend en charge des longueurs de clé de 40 bits à 128 bits par incréments de 8 bits.The RC2CryptoServiceProvider implementation supports key lengths from 40 bits to 128 bits in increments of 8 bits.

Le RC2CryptoServiceProvider objet est un chiffrement par blocs qui chiffre et déchiffre les données dans des blocs de 8 octets.The RC2CryptoServiceProvider object is a block cipher that encrypts and decrypts data in blocks of 8 bytes. Cette classe remplit le dernier bloc de données si elle est inférieure à 8 octets.This class pads the final block of data if it is less than 8 bytes. À la suite de ce remplissage, la longueur des données chiffrées peut être supérieure au texte brut d’origine.As a result of this padding, the length of encrypted data could be greater than the original plaintext.

Notez que le RC2CryptoServiceProvider objet n’utilise pas le salt.Note that the RC2CryptoServiceProvider object does not use salt.

Notes

Un algorithme de chiffrement symétrique plus récent, Advanced Encryption Standard (AES), est disponible.A newer symmetric encryption algorithm, Advanced Encryption Standard (AES), is available. Envisagez d’utiliser le Aes algorithme et ses classes dérivées au lieu du RC2CryptoServiceProvider classe.Consider using the Aes algorithm and its derived classes instead of the RC2CryptoServiceProvider class. Utilisez RC2CryptoServiceProvider uniquement pour la compatibilité avec les applications héritées et des données.Use RC2CryptoServiceProvider only for compatibility with legacy applications and data.

Constructeurs

RC2CryptoServiceProvider() RC2CryptoServiceProvider() RC2CryptoServiceProvider() RC2CryptoServiceProvider()

Initialise une nouvelle instance de la classe RC2CryptoServiceProvider.Initializes a new instance of the RC2CryptoServiceProvider class.

Propriétés

BlockSize BlockSize BlockSize BlockSize

Obtient ou définit la taille de bloc, en bits, de l'opération de chiffrement.Gets or sets the block size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
EffectiveKeySize EffectiveKeySize EffectiveKeySize EffectiveKeySize

Obtient ou définit la taille effective, en bits, de la clé secrète utilisée par l'algorithme RC2.Gets or sets the effective size, in bits, of the secret key used by the RC2 algorithm.

FeedbackSize FeedbackSize FeedbackSize FeedbackSize

Obtient ou définit la taille des commentaires, en bits, de l'opération de chiffrement.Gets or sets the feedback size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
IV IV IV IV

Obtient ou définit le vecteur d'initialisation (IV) pour l'algorithme symétrique.Gets or sets the initialization vector (IV) for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
Key Key Key Key

Obtient ou définit la clé secrète pour l'algorithme symétrique.Gets or sets the secret key for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
KeySize KeySize KeySize KeySize

Obtient ou définit la taille de la clé secrète utilisée par l'algorithme RC2, en bits.Gets or sets the size of the secret key used by the RC2 algorithm in bits.

(Inherited from RC2)
LegalBlockSizes LegalBlockSizes LegalBlockSizes LegalBlockSizes

Obtient les tailles de bloc, en octets, prises en charge par l'algorithme symétrique.Gets the block sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
LegalKeySizes LegalKeySizes LegalKeySizes LegalKeySizes

Obtient les tailles de clé, en octets, prises en charge par l'algorithme symétrique.Gets the key sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
Mode Mode Mode Mode

Obtient ou définit le mode de fonctionnement pour l'algorithme symétrique.Gets or sets the mode for operation of the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
Padding Padding Padding Padding

Obtient ou définit le mode de remplissage utilisé dans l'algorithme symétrique.Gets or sets the padding mode used in the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
UseSalt UseSalt UseSalt UseSalt

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.Gets or sets a value that determines whether to create a key with an 11-byte-long, zero-value salt.

Méthodes

Clear() Clear() Clear() Clear()

Libère toutes les ressources utilisées par la classe SymmetricAlgorithm.Releases all resources used by the SymmetricAlgorithm class.

(Inherited from SymmetricAlgorithm)
CreateDecryptor() CreateDecryptor() CreateDecryptor() CreateDecryptor()

Crée un objet déchiffreur symétrique avec la propriété Key en cours et le vecteur d'initialisation (IV).Creates a symmetric decryptor object with the current Key property and initialization vector (IV).

(Inherited from SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[]) CreateDecryptor(Byte[], Byte[]) CreateDecryptor(Byte[], Byte[]) CreateDecryptor(Byte[], Byte[])

Crée un objet déchiffreur RC2 symétrique avec la clé spécifiée (Key) et le vecteur d’initialisation (IV).Creates a symmetric RC2 decryptor object with the specified key (Key) and initialization vector (IV).

CreateEncryptor() CreateEncryptor() CreateEncryptor() CreateEncryptor()

Crée un objet chiffreur symétrique avec la propriété Key en cours et le vecteur d'initialisation (IV).Creates a symmetric encryptor object with the current Key property and initialization vector (IV).

(Inherited from SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[]) CreateEncryptor(Byte[], Byte[]) CreateEncryptor(Byte[], Byte[]) CreateEncryptor(Byte[], Byte[])

Crée un objet chiffreur RC2 symétrique avec la clé spécifiée (Key) et le vecteur d'initialisation (IV).Creates a symmetric RC2 encryptor object with the specified key (Key) and initialization vector (IV).

Dispose() Dispose() Dispose() Dispose()

Libère toutes les ressources utilisées par l'instance actuelle de la classe SymmetricAlgorithm.Releases all resources used by the current instance of the SymmetricAlgorithm class.

(Inherited from SymmetricAlgorithm)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Libère les ressources non managées utilisées par SymmetricAlgorithm et libère éventuellement les ressources managées.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(Inherited from SymmetricAlgorithm)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GenerateIV() GenerateIV() GenerateIV() GenerateIV()

Génère un vecteur d'initialisation aléatoire (IV) à utiliser pour l'algorithme.Generates a random initialization vector (IV) to use for the algorithm.

GenerateKey() GenerateKey() GenerateKey() GenerateKey()

Génère une clé aléatoire (Key) à utiliser pour l'algorithme.Generates a random key (Key) to be used for the algorithm.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)
ValidKeySize(Int32) ValidKeySize(Int32) ValidKeySize(Int32) ValidKeySize(Int32)

Détermine si la taille de clé spécifiée est valide pour l'algorithme en cours.Determines whether the specified key size is valid for the current algorithm.

(Inherited from SymmetricAlgorithm)

Champs

BlockSizeValue BlockSizeValue BlockSizeValue BlockSizeValue

Représente la taille de bloc, en bits, de l'opération de chiffrement.Represents the block size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
EffectiveKeySizeValue EffectiveKeySizeValue EffectiveKeySizeValue EffectiveKeySizeValue

Représente la taille effective de la clé secrète utilisée par l'algorithme RC2, en bits.Represents the effective size of the secret key used by the RC2 algorithm in bits.

(Inherited from RC2)
FeedbackSizeValue FeedbackSizeValue FeedbackSizeValue FeedbackSizeValue

Représente la taille des commentaires, en bits, de l'opération de chiffrement.Represents the feedback size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
IVValue IVValue IVValue IVValue

Représente le vecteur d'initialisation (IV) pour l'algorithme symétrique.Represents the initialization vector (IV) for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
KeySizeValue KeySizeValue KeySizeValue KeySizeValue

Représente la taille, en bits, de la clé secrète utilisée par l'algorithme symétrique.Represents the size, in bits, of the secret key used by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
KeyValue KeyValue KeyValue KeyValue

Représente la clé secrète pour l'algorithme symétrique.Represents the secret key for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
LegalBlockSizesValue LegalBlockSizesValue LegalBlockSizesValue LegalBlockSizesValue

Spécifie les tailles de bloc, en octets, prises en charge par l'algorithme symétrique.Specifies the block sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue

Spécifie les tailles de clé, en octets, prises en charge par l'algorithme symétrique.Specifies the key sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
ModeValue ModeValue ModeValue ModeValue

Représente le mode de chiffrement utilisé dans l'algorithme symétrique.Represents the cipher mode used in the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
PaddingValue PaddingValue PaddingValue PaddingValue

Représente le mode de remplissage utilisé dans l'algorithme symétrique.Represents the padding mode used in the symmetric algorithm.

(Inherited from SymmetricAlgorithm)

Implémentations d’interfaces explicites

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

Libère les ressources non managées utilisées par SymmetricAlgorithm et libère éventuellement les ressources managées.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(Inherited from SymmetricAlgorithm)

S’applique à

Voir aussi