Udostępnij za pośrednictwem


RC2CryptoServiceProvider Klasa

Definicja

Przestroga

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

Definiuje obiekt otoki w celu uzyskania dostępu do implementacji algorytmu dostawcy usług kryptograficznych (CSP).RC2 Klasa ta nie może być dziedziczona.

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
Dziedziczenie
RC2CryptoServiceProvider
Atrybuty

Przykłady

Poniższy przykład kodu szyfruje, a następnie odszyfrowuje ciąg.

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

Uwagi

Implementacja RC2CryptoServiceProvider obsługuje długości kluczy od 40 bitów do 128 bitów w przyrostach 8 bitów.

Obiekt RC2CryptoServiceProvider to szyfr blokowy, który szyfruje i odszyfrowuje dane w blokach o rozmiarze 8 bajtów. Ta klasa dopełnia końcowy blok danych, jeśli jest mniejszy niż 8 bajtów. W wyniku tego wypełnienia długość zaszyfrowanych danych może być większa niż oryginalny zwykły tekst.

Należy pamiętać, że RC2CryptoServiceProvider obiekt nie używa soli.

Uwaga

Dostępny jest nowszy algorytm szyfrowania symetrycznego Advanced Encryption Standard (AES). Rozważ użycie algorytmu Aes i jego klas pochodnych RC2CryptoServiceProvider zamiast klasy . Używaj RC2CryptoServiceProvider tylko w celu zachowania zgodności ze starszymi aplikacjami i danymi.

Konstruktory

RC2CryptoServiceProvider()
Przestarzałe.

Inicjuje nowe wystąpienie klasy RC2CryptoServiceProvider.

Pola

BlockSizeValue
Przestarzałe.

Reprezentuje rozmiar bloku w bitach operacji kryptograficznych.

(Odziedziczone po SymmetricAlgorithm)
EffectiveKeySizeValue
Przestarzałe.

Reprezentuje efektywny rozmiar klucza tajnego używanego RC2 przez algorytm w bitach.

(Odziedziczone po RC2)
FeedbackSizeValue
Przestarzałe.

Reprezentuje rozmiar opinii w bitach operacji kryptograficznych.

(Odziedziczone po SymmetricAlgorithm)
IVValue
Przestarzałe.

Reprezentuje wektor inicjowania (IV) dla algorytmu symetrycznego.

(Odziedziczone po SymmetricAlgorithm)
KeySizeValue
Przestarzałe.

Reprezentuje rozmiar klucza tajnego używanego przez algorytm symetryczny w bitach.

(Odziedziczone po SymmetricAlgorithm)
KeyValue
Przestarzałe.

Reprezentuje klucz tajny algorytmu symetrycznego.

(Odziedziczone po SymmetricAlgorithm)
LegalBlockSizesValue
Przestarzałe.

Określa rozmiary bloków w bitach, które są obsługiwane przez algorytm symetryczny.

(Odziedziczone po SymmetricAlgorithm)
LegalKeySizesValue
Przestarzałe.

Określa rozmiary kluczy w bitach, które są obsługiwane przez algorytm symetryczny.

(Odziedziczone po SymmetricAlgorithm)
ModeValue
Przestarzałe.

Reprezentuje tryb szyfrowania używany w algorytmie symetrycznym.

(Odziedziczone po SymmetricAlgorithm)
PaddingValue
Przestarzałe.

Reprezentuje tryb uzupełniania używany w algorytmie symetrycznym.

(Odziedziczone po SymmetricAlgorithm)

Właściwości

BlockSize
Przestarzałe.

Pobiera lub ustawia rozmiar bloku w bitach operacji kryptograficznych.

(Odziedziczone po SymmetricAlgorithm)
EffectiveKeySize
Przestarzałe.

Pobiera lub ustawia efektywny rozmiar klucza tajnego używanego RC2 przez algorytm w bitach.

FeedbackSize
Przestarzałe.

Pobiera lub ustawia rozmiar opinii w bitach operacji kryptograficznych dla trybów szyfrowania opinii (CFB) i szyfrowania danych wyjściowych (OFB).

(Odziedziczone po SymmetricAlgorithm)
IV
Przestarzałe.

Pobiera lub ustawia wektor inicjowania (IV) dla algorytmu symetrycznego.

(Odziedziczone po SymmetricAlgorithm)
Key
Przestarzałe.

Pobiera lub ustawia klucz tajny dla algorytmu symetrycznego.

(Odziedziczone po SymmetricAlgorithm)
KeySize
Przestarzałe.

Pobiera lub ustawia rozmiar klucza tajnego używanego RC2 przez algorytm w bitach.

(Odziedziczone po RC2)
LegalBlockSizes
Przestarzałe.

Pobiera rozmiary bloków w bitach, które są obsługiwane przez algorytm symetryczny.

(Odziedziczone po SymmetricAlgorithm)
LegalKeySizes
Przestarzałe.

Pobiera rozmiary kluczy w bitach, które są obsługiwane przez algorytm symetryczny.

(Odziedziczone po SymmetricAlgorithm)
Mode
Przestarzałe.

Pobiera lub ustawia tryb działania algorytmu symetrycznego.

(Odziedziczone po SymmetricAlgorithm)
Padding
Przestarzałe.

Pobiera lub ustawia tryb uzupełniania używany w algorytmie symetrycznym.

(Odziedziczone po SymmetricAlgorithm)
UseSalt
Przestarzałe.

Pobiera lub ustawia wartość, która określa, czy utworzyć klucz z 11-bajtową, zerową wartością soli.

Metody

Clear()
Przestarzałe.

Zwalnia wszystkie zasoby używane przez klasę SymmetricAlgorithm .

(Odziedziczone po SymmetricAlgorithm)
CreateDecryptor()
Przestarzałe.

Tworzy obiekt odszyfrowywania symetrycznego z bieżącą Key właściwością i wektorem inicjowania (IV).

(Odziedziczone po SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])
Przestarzałe.

Tworzy obiekt odszyfrowywania symetrycznego RC2 z określonym kluczem (Key) i wektorem inicjowania (IV).

CreateEncryptor()
Przestarzałe.

Tworzy obiekt szyfrowania symetrycznego z bieżącą Key właściwością i wektorem inicjowania (IV).

(Odziedziczone po SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])
Przestarzałe.

Tworzy obiekt szyfrowania symetrycznego RC2 z określonym kluczem (Key) i wektorem inicjowania (IV).

DecryptCbc(Byte[], Byte[], PaddingMode)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Przestarzałe.

Odszyfrowuje dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Odszyfrowuje dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Przestarzałe.

Odszyfrowuje dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
Dispose()
Przestarzałe.

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy SymmetricAlgorithm.

(Odziedziczone po SymmetricAlgorithm)
Dispose(Boolean)
Przestarzałe.

Zwalnia zasoby niezarządzane używane przez element SymmetricAlgorithm i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)
Przestarzałe.

Szyfruje dane przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Przestarzałe.

Szyfruje dane przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Przestarzałe.

Szyfruje dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)
Przestarzałe.

Szyfruje dane przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Przestarzałe.

Szyfruje dane przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Szyfruje dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)
Przestarzałe.

Szyfruje dane przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Przestarzałe.

Szyfruje dane przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Przestarzałe.

Szyfruje dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
Equals(Object)
Przestarzałe.

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GenerateIV()
Przestarzałe.

Generuje wektor inicjowania losowego (IV) do użycia dla algorytmu.

GenerateKey()
Przestarzałe.

Generuje losowy klucz (Key), który ma być używany dla algorytmu.

GetCiphertextLengthCbc(Int32, PaddingMode)
Przestarzałe.

Pobiera długość szyfrowania tekstu z danym trybem wypełnienia i długością zwykłego tekstu w trybie CBC.

(Odziedziczone po SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)
Przestarzałe.

Pobiera długość szyfrowania tekstu z danym trybem wypełnienia i długością zwykłego tekstu w trybie CFB.

(Odziedziczone po SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)
Przestarzałe.

Pobiera długość szyfrowania tekstu z danym trybem wypełnienia i długością zwykłego tekstu w trybie EBC.

(Odziedziczone po SymmetricAlgorithm)
GetHashCode()
Przestarzałe.

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()
Przestarzałe.

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()
Przestarzałe.

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()
Przestarzałe.

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Przestarzałe.

Próbuje odszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Po zastąpieniu w klasie pochodnej program próbuje odszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Przestarzałe.

Próbuje odszyfrować dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Przestarzałe.

Po zastąpieniu w klasie pochodnej próbuje odszyfrować dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Próbuje odszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Podczas zastępowania w klasie pochodnej program próbuje odszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Przestarzałe.

Próbuje zaszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Po zastąpieniu w klasie pochodnej próbuje zaszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Przestarzałe.

Próbuje zaszyfrować dane w określonym buforze przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Przestarzałe.

Po zastąpieniu w klasie pochodnej próbuje zaszyfrować dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Próbuje zaszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Po zastąpieniu w klasie pochodnej program próbuje zaszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania.

(Odziedziczone po SymmetricAlgorithm)
ValidKeySize(Int32)
Przestarzałe.

Określa, czy określony rozmiar klucza jest prawidłowy dla bieżącego algorytmu.

(Odziedziczone po SymmetricAlgorithm)

Jawne implementacje interfejsu

IDisposable.Dispose()

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Przestarzałe.

Zwalnia zasoby niezarządzane używane przez element SymmetricAlgorithm i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po SymmetricAlgorithm)

Dotyczy

Zobacz też