RSACryptoServiceProvider.Decrypt Methode

Definition

Entschlüsselt Daten, die zuvor verschlüsselt wurden.

Überlädt

Decrypt(Byte[], Boolean)

Verschlüsselt Daten mit dem RSA-Algorithmus.

Decrypt(Byte[], RSAEncryptionPadding)

Entschlüsselt zuvor mit dem RSA-Algorithmus verschlüsselte Daten unter Verwendung des angegebene Paddingmodus.

Decrypt(Byte[], Boolean)

Verschlüsselt Daten mit dem RSA-Algorithmus.

public:
 cli::array <System::Byte> ^ Decrypt(cli::array <System::Byte> ^ rgb, bool fOAEP);
public byte[] Decrypt (byte[] rgb, bool fOAEP);
override this.Decrypt : byte[] * bool -> byte[]
member this.Decrypt : byte[] * bool -> byte[]
Public Function Decrypt (rgb As Byte(), fOAEP As Boolean) As Byte()

Parameter

rgb
Byte[]

Die zu entschlüsselnden Daten.

fOAEP
Boolean

true, um direkte RSA-Entschlüsselung mit OAEP-Padding (Auffüllung) auszuführen, andernfalls false, um Padding gemäß PKCS#1 v1.5 zu verwenden.

Gibt zurück

Byte[]

Die entschlüsselten Daten, d. h. der ursprüngliche Klartext vor der Verschlüsselung.

Ausnahmen

Der Kryptografiedienstanbieter (Cryptographic Service Provider, CSP) kann nicht abgerufen werden.

- oder - Der fOAEP-Parameter ist true, und die Länge des rgb-Parameters ist größer als KeySize.

- oder - Der Schlüssel stimmt nicht mit den verschlüsselten Daten überein. Allerdings ist der Wortlaut der Ausnahme möglicherweise nicht präzise. Die Meldung kann beispielsweise Zum Verarbeiten des Befehls ist nicht genügend Speicherplatz verfügbar lauten.

rgb ist null.

Beispiele

Im folgenden Codebeispiel werden Daten verschlüsselt und entschlüsselt.

In diesem Beispiel wird die ASCIIEncoding UnicodeEncoding Klasse verwendet. Die Klasse kann jedoch in großen Datenvorgängen bevorzugt werden. Der verschlüsselte Wert kann als nvarchar Datentyp in Microsoft SQL Server gespeichert werden.

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Text;
int main()
{
   try
   {
      
      //Create a UnicodeEncoder to convert between byte array and string.
      ASCIIEncoding^ ByteConverter = gcnew ASCIIEncoding;
      String^ dataString = "Data to Encrypt";
      
      //Create byte arrays to hold original, encrypted, and decrypted data.
      array<Byte>^dataToEncrypt = ByteConverter->GetBytes( dataString );
      array<Byte>^encryptedData;
      array<Byte>^decryptedData;
      
      //Create a new instance of the RSACryptoServiceProvider class 
      // and automatically create a new key-pair.
      RSACryptoServiceProvider^ RSAalg = gcnew RSACryptoServiceProvider;
      
      //Display the origianl data to the console.
      Console::WriteLine( "Original Data: {0}", dataString );
      
      //Encrypt the byte array and specify no OAEP padding.  
      //OAEP padding is only available on Microsoft Windows XP or
      //later.  
      encryptedData = RSAalg->Encrypt( dataToEncrypt, false );
      
      //Display the encrypted data to the console. 
      Console::WriteLine( "Encrypted Data: {0}", ByteConverter->GetString( encryptedData ) );
      
      //Pass the data to ENCRYPT and boolean flag specifying 
      //no OAEP padding.
      decryptedData = RSAalg->Decrypt( encryptedData, false );
      
      //Display the decrypted plaintext to the console. 
      Console::WriteLine( "Decrypted plaintext: {0}", ByteConverter->GetString( decryptedData ) );
   }
   catch ( CryptographicException^ e ) 
   {
      
      //Catch this exception in case the encryption did
      //not succeed.
      Console::WriteLine( e->Message );
   }

}
using System;
using System.Security.Cryptography;
using System.Text;

class RSACSPSample
{
    static void Main()
    {
        try
        {
            //Create a UnicodeEncoder to convert between byte array and string.
            ASCIIEncoding ByteConverter = new ASCIIEncoding();

            string dataString = "Data to Encrypt";

            //Create byte arrays to hold original, encrypted, and decrypted data.
            byte[] dataToEncrypt = ByteConverter.GetBytes(dataString);
            byte[] encryptedData;
            byte[] decryptedData;

            //Create a new instance of the RSACryptoServiceProvider class
            // and automatically create a new key-pair.
            RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider();

            //Display the origianl data to the console.
            Console.WriteLine("Original Data: {0}", dataString);

            //Encrypt the byte array and specify no OAEP padding.
            //OAEP padding is only available on Microsoft Windows XP or
            //later.
            encryptedData = RSAalg.Encrypt(dataToEncrypt, false);

            //Display the encrypted data to the console.
            Console.WriteLine("Encrypted Data: {0}", ByteConverter.GetString(encryptedData));

            //Pass the data to ENCRYPT and boolean flag specifying
            //no OAEP padding.
            decryptedData = RSAalg.Decrypt(encryptedData, false);

            //Display the decrypted plaintext to the console.
            Console.WriteLine("Decrypted plaintext: {0}", ByteConverter.GetString(decryptedData));
        }
        catch(CryptographicException e)
        {
            //Catch this exception in case the encryption did
            //not succeed.
            Console.WriteLine(e.Message);
        }
    }
}
Imports System.Security.Cryptography
Imports System.Text

Module RSACSPExample

    Sub Main()
        Try
            'Create a UnicodeEncoder to convert between byte array and string.
            Dim ByteConverter As New ASCIIEncoding

            Dim dataString As String = "Data to Encrypt"

            'Create byte arrays to hold original, encrypted, and decrypted data.
            Dim dataToEncrypt As Byte() = ByteConverter.GetBytes(dataString)
            Dim encryptedData() As Byte
            Dim decryptedData() As Byte

            'Create a new instance of the RSACryptoServiceProvider class 
            ' and automatically create a new key-pair.
            Dim RSAalg As New RSACryptoServiceProvider

            'Display the origianl data to the console.
            Console.WriteLine("Original Data: {0}", dataString)

            'Encrypt the byte array and specify no OAEP padding.  
            'OAEP padding is only available on Microsoft Windows XP or
            'later.  
            encryptedData = RSAalg.Encrypt(dataToEncrypt, False)

            'Display the encrypted data to the console. 
            Console.WriteLine("Encrypted Data: {0}", ByteConverter.GetString(encryptedData))

            'Pass the data to ENCRYPT and boolean flag specifying 
            'no OAEP padding.
            decryptedData = RSAalg.Decrypt(encryptedData, False)

            'Display the decrypted plaintext to the console. 
            Console.WriteLine("Decrypted plaintext: {0}", ByteConverter.GetString(decryptedData))
        Catch e As CryptographicException
            'Catch this exception in case the encryption did
            'not succeed.
            Console.WriteLine(e.Message)
        End Try
    End Sub 

End Module

Hinweise

Verwenden Sie Encrypt zum Verschlüsseln von Daten zur Entschlüsselung mit dieser Methode.

Siehe auch

Gilt für

Decrypt(Byte[], RSAEncryptionPadding)

Entschlüsselt zuvor mit dem RSA-Algorithmus verschlüsselte Daten unter Verwendung des angegebene Paddingmodus.

public:
 override cli::array <System::Byte> ^ Decrypt(cli::array <System::Byte> ^ data, System::Security::Cryptography::RSAEncryptionPadding ^ padding);
public override byte[] Decrypt (byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding);
override this.Decrypt : byte[] * System.Security.Cryptography.RSAEncryptionPadding -> byte[]
Public Overrides Function Decrypt (data As Byte(), padding As RSAEncryptionPadding) As Byte()

Parameter

data
Byte[]

Die zu entschlüsselnden Daten.

padding
RSAEncryptionPadding

Der Paddingmodus.

Gibt zurück

Byte[]

Die entschlüsselten Daten.

Ausnahmen

data ist null.

- oder - padding ist null.

Der Paddingmodus wird nicht unterstützt.

Hinweise

padding muss entweder RSAEncryptionPadding.Pkcs1 oder RSAEncryptionPadding.OaepSHA1.

Gilt für