RSACryptoServiceProvider.Decrypt Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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. Es kann z. B. heißen Not enough storage is available to process this command
.
rgb
ist null
Beispiele
Im folgenden Codebeispiel werden Daten verschlüsselt und entschlüsselt.
In diesem Beispiel wird die ASCIIEncoding -Klasse verwendet. UnicodeEncoding Die -Klasse kann jedoch bei Großdatenvorgängen vorzuziehen sein. 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 , um Daten für die Entschlüsselung mit dieser Methode zu verschlüsseln.
Weitere Informationen
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
Die entschlüsselten Daten.
Ausnahmen
Der Paddingmodus wird nicht unterstützt.
Hinweise
padding
muss entweder RSAEncryptionPadding.Pkcs1 oder RSAEncryptionPadding.OaepSHA1sein.