Sdílet prostřednictvím


RSACryptoServiceProvider.Decrypt Metoda

Definice

Dešifruje data, která byla dříve zašifrovaná.

Přetížení

Decrypt(Byte[], Boolean)

Dešifruje data pomocí RSA algoritmu.

Decrypt(Byte[], RSAEncryptionPadding)

Dešifruje data, která byla dříve zašifrována RSA pomocí algoritmu, pomocí zadaného odsazení.

Decrypt(Byte[], Boolean)

Zdroj:
RSACryptoServiceProvider.Unix.cs
Zdroj:
RSACryptoServiceProvider.Unix.cs
Zdroj:
RSACryptoServiceProvider.Unix.cs

Dešifruje data pomocí RSA algoritmu.

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()

Parametry

rgb
Byte[]

Data, která se mají dešifrovat.

fOAEP
Boolean

true provést přímé RSA dešifrování pomocí odsazení OAEP; false jinak použít odsazení PKCS#1 v1.5.

Návraty

Byte[]

Dešifrovaná data, což je původní prostý text před šifrováním.

Výjimky

Zprostředkovatele kryptografických služeb (CSP) nelze získat.

-nebo-

Parametr fOAEP je true a délka parametru rgb je větší než KeySize.

-nebo-

Klíč neodpovídá šifrovaným datům. Formulace výjimky však nemusí být přesná. Může například napsat Not enough storage is available to process this command.

rgb je null.

Příklady

Následující příklad kódu šifruje a dešifruje data.

V tomto příkladu se ASCIIEncoding používá třída , UnicodeEncoding ale třída může být vhodnější pro operace s velkými objemy dat. Šifrovanou hodnotu lze uložit jako nvarchar datový typ v Microsoft SQL Serveru.

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

Poznámky

Pomocí Encrypt této metody zašifrujte data pro dešifrování.

Viz také

Platí pro

Decrypt(Byte[], RSAEncryptionPadding)

Zdroj:
RSACryptoServiceProvider.Unix.cs
Zdroj:
RSACryptoServiceProvider.Unix.cs
Zdroj:
RSACryptoServiceProvider.Unix.cs

Dešifruje data, která byla dříve zašifrována RSA pomocí algoritmu, pomocí zadaného odsazení.

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()

Parametry

data
Byte[]

Data k dešifrování.

padding
RSAEncryptionPadding

Odsazení.

Návraty

Byte[]

Dešifrovaná data.

Výjimky

data je null.

-nebo-

padding je null.

Režim odsazení není podporován.

Poznámky

padding musí být buď , RSAEncryptionPadding.Pkcs1 nebo RSAEncryptionPadding.OaepSHA1.

Platí pro