RC2CryptoServiceProvider RC2CryptoServiceProvider RC2CryptoServiceProvider RC2CryptoServiceProvider Class

Definition

Definiert ein Wrapperobjekt, um auf die Kryptografiedienstanbieter-Implementierung (Cryptographic Service Provider) des RC2-Algorithmus zuzugreifen.Defines a wrapper object to access the cryptographic service provider (CSP) implementation of the RC2 algorithm. Diese Klasse kann nicht vererbt werden.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
Vererbung
RC2CryptoServiceProviderRC2CryptoServiceProviderRC2CryptoServiceProviderRC2CryptoServiceProvider
Attribute

Beispiele

Im folgenden Codebeispiel wird eine Zeichenfolge verschlüsselt und entschlüsselt.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.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

Hinweise

Die RC2CryptoServiceProvider -Implementierung unterstützt Schlüssellängen von 40 Bits bis 128 Bits in Schritten von 8 Bits.The RC2CryptoServiceProvider implementation supports key lengths from 40 bits to 128 bits in increments of 8 bits.

Das RC2CryptoServiceProvider -Objekt ist eine Blockchiffre, die Daten in Blöcken von 8 Bytes verschlüsselt und entschlüsselt.The RC2CryptoServiceProvider object is a block cipher that encrypts and decrypts data in blocks of 8 bytes. Diese Klasse füllt den letzten Datenblock auf, wenn er kleiner als 8 Bytes ist.This class pads the final block of data if it is less than 8 bytes. Aufgrund dieses Auffüll Zeichens kann die Länge verschlüsselter Daten größer sein als der ursprüngliche Klartext.As a result of this padding, the length of encrypted data could be greater than the original plaintext.

Beachten Sie, RC2CryptoServiceProvider dass das-Objekt Salt nicht verwendet.Note that the RC2CryptoServiceProvider object does not use salt.

Hinweis

Ein neuerer symmetrischer Verschlüsselungsalgorithmus, Advanced Encryption Standard (AES), ist verfügbar.A newer symmetric encryption algorithm, Advanced Encryption Standard (AES), is available. Verwenden Sie ggf. den Aes Algorithmus und seine abgeleiteten Klassen anstelle RC2CryptoServiceProvider der-Klasse.Consider using the Aes algorithm and its derived classes instead of the RC2CryptoServiceProvider class. Verwenden RC2CryptoServiceProvider Sie nur aus Gründen der Kompatibilität mit Legacy Anwendungen und-Daten.Use RC2CryptoServiceProvider only for compatibility with legacy applications and data.

Konstruktoren

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

Initialisiert eine neue Instanz der RC2CryptoServiceProvider-Klasse.Initializes a new instance of the RC2CryptoServiceProvider class.

Eigenschaften

BlockSize BlockSize BlockSize BlockSize

Ruft die Blockgröße des kryptografischen Vorgangs in Bits ab oder legt diese fest.Gets or sets the block size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
EffectiveKeySize EffectiveKeySize EffectiveKeySize EffectiveKeySize

Ruft die effektive Größe des geheimen Schlüssels für den RC2-Algorithmus in Bits ab oder legt diese fest.Gets or sets the effective size, in bits, of the secret key used by the RC2 algorithm.

FeedbackSize FeedbackSize FeedbackSize FeedbackSize

Ruft die Feedbackgröße des kryptografischen Vorgangs in Bits ab oder legt diese fest.Gets or sets the feedback size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
IV IV IV IV

Ruft den Initialisierungsvektor (IV) für den symmetrischen Algorithmus ab oder legt diesen fest.Gets or sets the initialization vector (IV) for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
Key Key Key Key

Ruft den geheimen Schlüssel für den symmetrischen Algorithmus ab oder legt diesen fest.Gets or sets the secret key for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
KeySize KeySize KeySize KeySize

Ruft die Größe des geheimen Schlüssels für den RC2-Algorithmus in Bits ab, oder legt diese fest.Gets or sets the size of the secret key used by the RC2 algorithm in bits.

(Inherited from RC2)
LegalBlockSizes LegalBlockSizes LegalBlockSizes LegalBlockSizes

Ruft die vom symmetrischen Algorithmus unterstützten Blockgrößen in Bits ab.Gets the block sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
LegalKeySizes LegalKeySizes LegalKeySizes LegalKeySizes

Ruft die vom symmetrischen Algorithmus unterstützten Schlüsselgrößen in Bits ab.Gets the key sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
Mode Mode Mode Mode

Ruft den Modus für die Ausführung des symmetrischen Algorithmus ab oder legt diesen fest.Gets or sets the mode for operation of the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
Padding Padding Padding Padding

Ruft den im symmetrischen Algorithmus verwendeten Füllzeichenmodus ab oder legt diesen fest.Gets or sets the padding mode used in the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
UseSalt UseSalt UseSalt UseSalt

Ruft einen Wert ab, der bestimmt, ob ein Schlüssel mit einem Salt mit der Länge 11 Bytes und dem Wert 0 (null) erstellt werden soll, bzw. legt diesen Wert fest.Gets or sets a value that determines whether to create a key with an 11-byte-long, zero-value salt.

Methoden

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

Gibt alle von der SymmetricAlgorithm-Klasse verwendeten Ressourcen frei.Releases all resources used by the SymmetricAlgorithm class.

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

Erstellt ein symmetrisches Entschlüsselungsobjekt mit der aktuellen Key-Eigenschaft und dem Initialisierungsvektor (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[])

Erstellt ein symmetrisches RC2-Entschlüsselungsobjekt mit dem angegebenen Schlüssel (Key) und dem angegebenen Initialisierungsvektor (IV).Creates a symmetric RC2 decryptor object with the specified key (Key) and initialization vector (IV).

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

Erstellt ein symmetrisches Verschlüsselungsobjekt mit der aktuellen Key-Eigenschaft und dem aktuellen Initialisierungsvektor (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[])

Erstellt ein symmetrisches RC2-Verschlüsselungsobjekt mit dem angegebenen Schlüssel (Key) und dem angegebenen Initialisierungsvektor (IV).Creates a symmetric RC2 encryptor object with the specified key (Key) and initialization vector (IV).

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

Gibt alle von der aktuellen Instanz der SymmetricAlgorithm-Klasse verwendeten Ressourcen frei.Releases all resources used by the current instance of the SymmetricAlgorithm class.

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

Gibt die von SymmetricAlgorithm verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.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)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

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

Generiert einen zufälligen Initialisierungsvektor (IV) für den Algorithmus.Generates a random initialization vector (IV) to use for the algorithm.

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

Generiert einen Zufallsschlüssel (Key) für den Algorithmus.Generates a random key (Key) to be used for the algorithm.

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

Fungiert als Standardhashfunktion.Serves as the default hash function.

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

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

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

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

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

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

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

Bestimmt, ob die angegebene Schlüsselgröße für den aktuellen Algorithmus gültig ist.Determines whether the specified key size is valid for the current algorithm.

(Inherited from SymmetricAlgorithm)

Felder

BlockSizeValue BlockSizeValue BlockSizeValue BlockSizeValue

Stellt die Blockgröße des kryptografischen Vorgangs in Bits dar.Represents the block size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
EffectiveKeySizeValue EffectiveKeySizeValue EffectiveKeySizeValue EffectiveKeySizeValue

Stellt die effektive Größe des geheimen Schlüssels für den RC2-Algorithmus in Bits dar.Represents the effective size of the secret key used by the RC2 algorithm in bits.

(Inherited from RC2)
FeedbackSizeValue FeedbackSizeValue FeedbackSizeValue FeedbackSizeValue

Stellt die Feedbackgröße des kryptografischen Vorgangs in Bits dar.Represents the feedback size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
IVValue IVValue IVValue IVValue

Stellt den Initialisierungsvektor (IV) für den symmetrischen Algorithmus dar.Represents the initialization vector (IV) for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
KeySizeValue KeySizeValue KeySizeValue KeySizeValue

Stellt die Größe des vom symmetrischen Algorithmus verwendeten geheimen Schlüssels in Bits dar.Represents the size, in bits, of the secret key used by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
KeyValue KeyValue KeyValue KeyValue

Stellt den geheimen Schlüssel für den symmetrischen Algorithmus dar.Represents the secret key for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
LegalBlockSizesValue LegalBlockSizesValue LegalBlockSizesValue LegalBlockSizesValue

Gibt die vom symmetrischen Algorithmus unterstützten Blockgrößen in Bits an.Specifies the block sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue

Gibt die vom symmetrischen Algorithmus unterstützten Schlüsselgrößen in Bits an.Specifies the key sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
ModeValue ModeValue ModeValue ModeValue

Stellt den im symmetrischen Algorithmus verwendeten Verschlüsselungsmodus dar.Represents the cipher mode used in the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
PaddingValue PaddingValue PaddingValue PaddingValue

Stellt den im symmetrischen Algorithmus verwendeten Füllzeichenmodus dar.Represents the padding mode used in the symmetric algorithm.

(Inherited from SymmetricAlgorithm)

Explizite Schnittstellenimplementierungen

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

Gibt die von SymmetricAlgorithm verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(Inherited from SymmetricAlgorithm)

Gilt für:

Siehe auch