RC2CryptoServiceProvider Třída

Definice

Upozornění

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

Definuje objekt obálky pro přístup k implementaci RC2 algoritmu zprostředkovatele kryptografických služeb (CSP). Tuto třídu nelze dědit.

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
Dědičnost
RC2CryptoServiceProvider
Atributy

Příklady

Následující příklad kódu zašifruje a pak dešifruje řetězec.

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

Poznámky

Implementace RC2CryptoServiceProvider podporuje délky klíčů od 40 bitů do 128 bitů v přírůstcích po 8 bitech.

Objekt RC2CryptoServiceProvider je bloková šifra, která šifruje a dešifruje data v blocích po 8 bajtech. Tato třída obsahuje konečný blok dat, pokud je menší než 8 bajtů. V důsledku tohoto odsazení může být délka šifrovaných dat větší než původní prostý text.

Všimněte si RC2CryptoServiceProvider , že objekt nepoužívá sůl.

Poznámka

K dispozici je novější algoritmus symetrického šifrování, AES (Advanced Encryption Standard). Zvažte použití Aes algoritmu a jeho odvozených RC2CryptoServiceProvider tříd místo třídy . Používejte RC2CryptoServiceProvider jenom kvůli kompatibilitě se staršími aplikacemi a daty.

Konstruktory

RC2CryptoServiceProvider()
Zastaralé.

Inicializuje novou instanci RC2CryptoServiceProvider třídy .

Pole

BlockSizeValue
Zastaralé.

Představuje velikost bloku kryptografické operace v bitech.

(Zděděno od SymmetricAlgorithm)
EffectiveKeySizeValue
Zastaralé.

Představuje efektivní velikost tajného klíče používaného algoritmem RC2 v bitech.

(Zděděno od RC2)
FeedbackSizeValue
Zastaralé.

Představuje velikost zpětné vazby v bitech kryptografické operace.

(Zděděno od SymmetricAlgorithm)
IVValue
Zastaralé.

Představuje inicializační vektor (IV) symetrického algoritmu.

(Zděděno od SymmetricAlgorithm)
KeySizeValue
Zastaralé.

Představuje velikost tajného klíče používaného symetrickým algoritmem v bitech.

(Zděděno od SymmetricAlgorithm)
KeyValue
Zastaralé.

Představuje tajný klíč symetrického algoritmu.

(Zděděno od SymmetricAlgorithm)
LegalBlockSizesValue
Zastaralé.

Určuje velikosti bloků v bitech, které jsou podporovány symetrickým algoritmem.

(Zděděno od SymmetricAlgorithm)
LegalKeySizesValue
Zastaralé.

Určuje velikosti klíčů v bitech, které jsou podporovány symetrickým algoritmem.

(Zděděno od SymmetricAlgorithm)
ModeValue
Zastaralé.

Představuje režim šifrování použitý v symetrické algoritmu.

(Zděděno od SymmetricAlgorithm)
PaddingValue
Zastaralé.

Představuje režim odsazení použitý v symetrické algoritmu.

(Zděděno od SymmetricAlgorithm)

Vlastnosti

BlockSize
Zastaralé.

Získá nebo nastaví velikost bloku v bitech kryptografické operace.

(Zděděno od SymmetricAlgorithm)
EffectiveKeySize
Zastaralé.

Získá nebo nastaví efektivní velikost tajného klíče používaného algoritmem RC2 v bitech.

FeedbackSize
Zastaralé.

Získá nebo nastaví velikost zpětné vazby v bitech kryptografické operace pro režimy šifry Šifrová zpětná vazba (CFB) a Výstupní zpětná vazba (OFB).

(Zděděno od SymmetricAlgorithm)
IV
Zastaralé.

Získá nebo nastaví inicializační vektor (IV) pro symetrický algoritmus.

(Zděděno od SymmetricAlgorithm)
Key
Zastaralé.

Získá nebo nastaví tajný klíč pro symetrický algoritmus.

(Zděděno od SymmetricAlgorithm)
KeySize
Zastaralé.

Získá nebo nastaví velikost tajného klíče používaného algoritmem RC2 v bitech.

(Zděděno od RC2)
LegalBlockSizes
Zastaralé.

Získá velikosti bloků v bitech, které jsou podporovány symetrickým algoritmem.

(Zděděno od SymmetricAlgorithm)
LegalKeySizes
Zastaralé.

Získá velikosti klíčů v bitech, které jsou podporovány symetrickým algoritmem.

(Zděděno od SymmetricAlgorithm)
Mode
Zastaralé.

Získá nebo nastaví režim pro provoz symetrického algoritmu.

(Zděděno od SymmetricAlgorithm)
Padding
Zastaralé.

Získá nebo nastaví režim odsazení použitý v symetrický algoritmus.

(Zděděno od SymmetricAlgorithm)
UseSalt
Zastaralé.

Získá nebo nastaví hodnotu, která určuje, zda vytvořit klíč s 11-bajt-dlouhý sůl nulové hodnoty.

Metody

Clear()
Zastaralé.

Uvolní všechny prostředky používané SymmetricAlgorithm třídou .

(Zděděno od SymmetricAlgorithm)
CreateDecryptor()
Zastaralé.

Vytvoří symetrický dešifrovací objekt s aktuální Key vlastností a inicializačním vektorem (IV).

(Zděděno od SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])
Zastaralé.

Vytvoří objekt symetrického RC2 dešifrovače se zadaným klíčem (Key) a inicializačním vektorem (IV).

CreateEncryptor()
Zastaralé.

Vytvoří symetrický objekt encryptoru s aktuální Key vlastností a inicializačním vektorem (IV).

(Zděděno od SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])
Zastaralé.

Vytvoří objekt symetrického RC2 encryptoru se zadaným klíčem (Key) a inicializačním vektorem (IV).

DecryptCbc(Byte[], Byte[], PaddingMode)
Zastaralé.

Dešifruje data pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Zastaralé.

Dešifruje data pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Zastaralé.

Dešifruje data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)
Zastaralé.

Dešifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Zastaralé.

Dešifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Dešifruje data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)
Zastaralé.

Dešifruje data pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Zastaralé.

Dešifruje data pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Zastaralé.

Dešifruje data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
Dispose()
Zastaralé.

Uvolní všechny prostředky používané aktuální instancí SymmetricAlgorithm třídy .

(Zděděno od SymmetricAlgorithm)
Dispose(Boolean)
Zastaralé.

Uvolní nespravované prostředky používané nástrojem SymmetricAlgorithm a volitelně uvolní spravované prostředky.

(Zděděno od SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)
Zastaralé.

Šifruje data pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Zastaralé.

Šifruje data pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Zastaralé.

Zašifruje data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)
Zastaralé.

Šifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Zastaralé.

Šifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Šifruje data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)
Zastaralé.

Šifruje data pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Zastaralé.

Šifruje data pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Zastaralé.

Šifruje data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
Equals(Object)
Zastaralé.

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GenerateIV()
Zastaralé.

Vygeneruje náhodný inicializační vektor (IV), který se použije pro algoritmus.

GenerateKey()
Zastaralé.

Vygeneruje náhodný klíč (Key), který se použije pro algoritmus.

GetCiphertextLengthCbc(Int32, PaddingMode)
Zastaralé.

Získá délku šifrového textu s daným režimem odsazení a délkou prostého textu v režimu CBC.

(Zděděno od SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)
Zastaralé.

Získá délku šifrového textu s daným režimem odsazení a délkou prostého textu v režimu CFB.

(Zděděno od SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)
Zastaralé.

Získá délku šifrového textu s daným režimem odsazení a délkou prostého textu v režimu ECB.

(Zděděno od SymmetricAlgorithm)
GetHashCode()
Zastaralé.

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()
Zastaralé.

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()
Zastaralé.

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()
Zastaralé.

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Zastaralé.

Pokusí se dešifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí dešifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Zastaralé.

Pokusí se dešifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Zastaralé.

Při přepsání v odvozené třídě se pokusí dešifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Pokusí se dešifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí dešifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Zastaralé.

Pokusí se šifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí šifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Zastaralé.

Pokusí se šifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí šifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Pokusy o šifrování dat do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí zašifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
ValidKeySize(Int32)
Zastaralé.

Určuje, zda je zadaná velikost klíče platná pro aktuální algoritmus.

(Zděděno od SymmetricAlgorithm)

Explicitní implementace rozhraní

IDisposable.Dispose()

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Zastaralé.

Uvolní nespravované prostředky používané nástrojem SymmetricAlgorithm a volitelně uvolní spravované prostředky.

(Zděděno od SymmetricAlgorithm)

Platí pro

Viz také