RC2CryptoServiceProvider Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Definierar ett omslutningsobjekt för åtkomst till csp-implementeringen (cryptographic service provider) för algoritmen RC2 . Det går inte att ärva den här klassen.
public ref class RC2CryptoServiceProvider sealed : System::Security::Cryptography::RC2
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.Runtime.InteropServices.ComVisible(true)>]
type RC2CryptoServiceProvider = class
inherit RC2
Public NotInheritable Class RC2CryptoServiceProvider
Inherits RC2
- Arv
- Attribut
Exempel
Följande kodexempel krypterar och dekrypterar sedan en sträng.
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
Kommentarer
Implementeringen RC2CryptoServiceProvider stöder nyckellängder från 40 bitar till 128 bitar i steg om 8 bitar.
Objektet RC2CryptoServiceProvider är ett blockkryptering som krypterar och dekrypterar data i block om 8 byte. Den här klassen blockerar det sista datablocket om det är mindre än 8 byte. Som ett resultat av den här utfyllnaden kan längden på krypterade data vara större än den ursprungliga klartexten.
Observera att objektet RC2CryptoServiceProvider inte använder salt.
Note
En nyare symmetrisk krypteringsalgoritm, Advanced Encryption Standard (AES), är tillgänglig. Överväg att använda algoritmen Aes och dess härledda klasser i stället för RC2CryptoServiceProvider klassen. Använd RC2CryptoServiceProvider endast för kompatibilitet med äldre program och data.
Konstruktorer
| Name | Description |
|---|---|
| RC2CryptoServiceProvider() |
Initierar en ny instans av RC2CryptoServiceProvider klassen. |
Fält
| Name | Description |
|---|---|
| BlockSizeValue |
Representerar blockstorleken i bitar för den kryptografiska åtgärden. (Ärvd från SymmetricAlgorithm) |
| EffectiveKeySizeValue |
Representerar den effektiva storleken på den hemliga nyckel som används av algoritmen RC2 i bitar. (Ärvd från RC2) |
| FeedbackSizeValue |
Representerar feedbackstorleken i bitar för den kryptografiska åtgärden. (Ärvd från SymmetricAlgorithm) |
| IVValue |
Representerar initieringsvektorn (IV) för den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| KeySizeValue |
Representerar storleken, i bitar, på den hemliga nyckel som används av den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| KeyValue |
Representerar den hemliga nyckeln för den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| LegalBlockSizesValue |
Anger de blockstorlekar i bitar som stöds av den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| LegalKeySizesValue |
Anger de nyckelstorlekar i bitar som stöds av den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| ModeValue |
Representerar chifferläget som används i den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| PaddingValue |
Representerar utfyllnadsläget som används i den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
Egenskaper
| Name | Description |
|---|---|
| BlockSize |
Hämtar eller anger blockstorleken i bitar för den kryptografiska åtgärden. (Ärvd från SymmetricAlgorithm) |
| EffectiveKeySize |
Hämtar eller anger den effektiva storleken, i bitar, på den hemliga nyckel som används av algoritmen RC2 . |
| FeedbackSize |
Hämtar eller anger feedbackstorleken i bitar för krypteringsåtgärden för chifferfeedback (CFB) och UTdatafeedback (OFB). (Ärvd från SymmetricAlgorithm) |
| IV |
Hämtar eller anger initieringsvektorn (IV) för den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| Key |
Hämtar eller anger den hemliga nyckeln för den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| KeySize |
Hämtar eller anger storleken på den hemliga nyckel som används av algoritmen RC2 i bitar. (Ärvd från RC2) |
| LegalBlockSizes |
Hämtar blockstorlekarna i bitar som stöds av den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| LegalKeySizes |
Hämtar de nyckelstorlekar, i bitar, som stöds av den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| Mode |
Hämtar eller anger läget för drift av den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| Padding |
Hämtar eller anger utfyllnadsläget som används i den symmetriska algoritmen. (Ärvd från SymmetricAlgorithm) |
| UseSalt |
Hämtar eller anger ett värde som avgör om du vill skapa en nyckel med ett 11 byte långt, nollvärdessalt. |
Metoder
| Name | Description |
|---|---|
| Clear() |
Släpper alla resurser som används av SymmetricAlgorithm klassen. (Ärvd från SymmetricAlgorithm) |
| CreateDecryptor() |
Skapar ett symmetriskt dekrypteringsobjekt med den aktuella Key egenskapen och initieringsvektorn (IV). (Ärvd från SymmetricAlgorithm) |
| CreateDecryptor(Byte[], Byte[]) |
Skapar ett symmetriskt RC2 dekrypteringsobjekt med den angivna nyckeln (Key) och initieringsvektorn (IV). |
| CreateEncryptor() |
Skapar ett symmetriskt krypteringsobjekt med den aktuella Key egenskapen och initieringsvektorn (IV). (Ärvd från SymmetricAlgorithm) |
| CreateEncryptor(Byte[], Byte[]) |
Skapar ett symmetriskt RC2 krypteringsobjekt med den angivna nyckeln (Key) och initieringsvektorn (IV). |
| Dispose() |
Släpper alla resurser som används av den aktuella instansen SymmetricAlgorithm av klassen. (Ärvd från SymmetricAlgorithm) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av SymmetricAlgorithm och släpper eventuellt de hanterade resurserna. (Ärvd från SymmetricAlgorithm) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GenerateIV() |
Genererar en slumpmässig initieringsvektor (IV) som ska användas för algoritmen. |
| GenerateKey() |
Genererar en slumpmässig nyckel (Key) som ska användas för algoritmen. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| ValidKeySize(Int32) |
Avgör om den angivna nyckelstorleken är giltig för den aktuella algoritmen. (Ärvd från SymmetricAlgorithm) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Detta API stöder produktinfrastrukturen och är inte avsett att användas direkt från koden. Släpper de ohanterade resurser som används av SymmetricAlgorithm och släpper eventuellt de hanterade resurserna. (Ärvd från SymmetricAlgorithm) |