RC2CryptoServiceProvider RC2CryptoServiceProvider RC2CryptoServiceProvider RC2CryptoServiceProvider Class

Definice

Definuje obálku objektu pro přístup kryptografických služeb (CSP) používaná implementace poskytovatele RC2 algoritmus.Defines a wrapper object to access the cryptographic service provider (CSP) implementation of the RC2 algorithm. Tato třída nemůže dědit.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
Dědičnost
RC2CryptoServiceProviderRC2CryptoServiceProviderRC2CryptoServiceProviderRC2CryptoServiceProvider
Atributy

Příklady

Následující příklad kódu šifruje a dešifruje pak řetězec.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

Poznámky

RC2CryptoServiceProvider Implementace podporuje délky klíčů od 40 do 128 bitů v krocích po 8 bitech.The RC2CryptoServiceProvider implementation supports key lengths from 40 bits to 128 bits in increments of 8 bits.

RC2CryptoServiceProvider Objekt je bloková šifra, která šifruje a dešifruje data v blocích po 8 bajtů.The RC2CryptoServiceProvider object is a block cipher that encrypts and decrypts data in blocks of 8 bytes. Tato třída vyplní posledního bloku dat, pokud je menší než 8 bajtů.This class pads the final block of data if it is less than 8 bytes. V důsledku této odsazení Délka šifrovaných dat může být větší než původní ve formátu prostého textu.As a result of this padding, the length of encrypted data could be greater than the original plaintext.

Všimněte si, RC2CryptoServiceProvider objekt nepoužíval hodnota salt.Note that the RC2CryptoServiceProvider object does not use salt.

Poznámka

Novější algoritmus symetrického šifrování Advanced Encryption (Standard AES), je k dispozici.A newer symmetric encryption algorithm, Advanced Encryption Standard (AES), is available. Zvažte použití Aes algoritmus a její odvozené třídy RC2CryptoServiceProvider třídy.Consider using the Aes algorithm and its derived classes instead of the RC2CryptoServiceProvider class. Použití RC2CryptoServiceProvider pouze pro kompatibilitu s starší verze aplikace a data.Use RC2CryptoServiceProvider only for compatibility with legacy applications and data.

Konstruktory

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

Inicializuje novou instanci třídy RC2CryptoServiceProvider třídy.Initializes a new instance of the RC2CryptoServiceProvider class.

Vlastnosti

BlockSize BlockSize BlockSize BlockSize

Získá nebo nastaví velikost bloku v bitech, kryptografické operace.Gets or sets the block size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
EffectiveKeySize EffectiveKeySize EffectiveKeySize EffectiveKeySize

Získá nebo nastaví minimální velikost v bitech, tajné klíče používané RC2 algoritmus.Gets or sets the effective size, in bits, of the secret key used by the RC2 algorithm.

FeedbackSize FeedbackSize FeedbackSize FeedbackSize

Získá nebo nastaví velikost zpětnou vazbu v bitech, kryptografické operace.Gets or sets the feedback size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
IV IV IV IV

Získá nebo nastaví inicializační vektor (IV) pro symetrický algoritmus.Gets or sets the initialization vector (IV) for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
Key Key Key Key

Získá nebo nastaví tajný klíč pro symetrický algoritmus.Gets or sets the secret key for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
KeySize KeySize KeySize KeySize

Získá nebo nastaví velikost tajný klíč používaný RC2 algoritmus v bitech.Gets or sets the size of the secret key used by the RC2 algorithm in bits.

(Inherited from RC2)
LegalBlockSizes LegalBlockSizes LegalBlockSizes LegalBlockSizes

Získá velikostí bloku, v bitech, které jsou podporovány symetrický algoritmus.Gets the block sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
LegalKeySizes LegalKeySizes LegalKeySizes LegalKeySizes

Získá klíče velikosti v bitech, které jsou podporovány symetrický algoritmus.Gets the key sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
Mode Mode Mode Mode

Získá nebo nastaví režim pro operaci symetrický algoritmus.Gets or sets the mode for operation of the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
Padding Padding Padding Padding

Získá nebo nastaví režim odsazení použité v symetrický algoritmus.Gets or sets the padding mode used in the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
UseSalt UseSalt UseSalt UseSalt

Získá nebo nastaví hodnotu, která určuje, jestli se má vytvořit klíč s 11. bajtů dlouhé, nulovou hodnotu salt.Gets or sets a value that determines whether to create a key with an 11-byte-long, zero-value salt.

Metody

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

Uvolní všechny prostředky používané SymmetricAlgorithm třídy.Releases all resources used by the SymmetricAlgorithm class.

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

Vytvoří objekt modulu Symetrické dešifrování s aktuálním Key vlastnost a inicializačního vektoru (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[])

Vytvoří symetrický RC2 modul pro dešifrování. objekt se zadaným klíčem (Key) a inicializační vektor (IV).Creates a symmetric RC2 decryptor object with the specified key (Key) and initialization vector (IV).

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

Vytvoří objekt symetrického šifrování s aktuálním Key vlastnost a inicializačního vektoru (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[])

Vytvoří symetrický RC2 encryptoru objekt se zadaným klíčem (Key) a inicializační vektor (IV).Creates a symmetric RC2 encryptor object with the specified key (Key) and initialization vector (IV).

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

Uvolní všechny prostředky používané aktuální instancí třídy SymmetricAlgorithm třídy.Releases all resources used by the current instance of the SymmetricAlgorithm class.

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

Uvolní nespravované prostředky využívané třídou SymmetricAlgorithm a volitelně také spravované prostředky.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)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

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

Generuje náhodné inicializační vektor (IV) pro algoritmus.Generates a random initialization vector (IV) to use for the algorithm.

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

Vygeneruje náhodný klíč (Key) má být použit pro tento algoritmus.Generates a random key (Key) to be used for the algorithm.

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

Slouží jako výchozí funkce hash.Serves as the default hash function.

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

Získá Type aktuální instance.Gets the Type of the current instance.

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

Vytvoří Mělkou kopii aktuální Object.Creates a shallow copy of the current Object.

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

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

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

Určuje, zda je zadaná velikost určeného klíče pro aktuální algoritmus platný.Determines whether the specified key size is valid for the current algorithm.

(Inherited from SymmetricAlgorithm)

Pole

BlockSizeValue BlockSizeValue BlockSizeValue BlockSizeValue

Představuje velikost bloku, v bitech, kryptografické operace.Represents the block size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
EffectiveKeySizeValue EffectiveKeySizeValue EffectiveKeySizeValue EffectiveKeySizeValue

Představuje efektivní velikost tajný klíč používaný RC2 algoritmus v bitech.Represents the effective size of the secret key used by the RC2 algorithm in bits.

(Inherited from RC2)
FeedbackSizeValue FeedbackSizeValue FeedbackSizeValue FeedbackSizeValue

Představuje velikost zpětnou vazbu v bitech, kryptografické operace.Represents the feedback size, in bits, of the cryptographic operation.

(Inherited from SymmetricAlgorithm)
IVValue IVValue IVValue IVValue

Představuje inicializační vektor (IV) pro symetrický algoritmus.Represents the initialization vector (IV) for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
KeySizeValue KeySizeValue KeySizeValue KeySizeValue

Představuje velikost v bitech, tajný klíč používaný symetrický algoritmus.Represents the size, in bits, of the secret key used by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
KeyValue KeyValue KeyValue KeyValue

Představuje tajný klíč pro symetrický algoritmus.Represents the secret key for the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
LegalBlockSizesValue LegalBlockSizesValue LegalBlockSizesValue LegalBlockSizesValue

Určuje velikost bloku v bitech, které jsou podporovány symetrický algoritmus.Specifies the block sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue

Určuje velikosti klíče v bitech, které jsou podporovány symetrický algoritmus.Specifies the key sizes, in bits, that are supported by the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
ModeValue ModeValue ModeValue ModeValue

Představuje režim šifry použitý v symetrický algoritmus.Represents the cipher mode used in the symmetric algorithm.

(Inherited from SymmetricAlgorithm)
PaddingValue PaddingValue PaddingValue PaddingValue

Představuje režim odsazení použité v symetrický algoritmus.Represents the padding mode used in the symmetric algorithm.

(Inherited from SymmetricAlgorithm)

Explicitní implementace rozhraní

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

Uvolní nespravované prostředky využívané třídou SymmetricAlgorithm a volitelně také spravované prostředky.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(Inherited from SymmetricAlgorithm)

Platí pro

Viz také