RC2CryptoServiceProvider Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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) |