Udostępnij za pośrednictwem


RSACryptoServiceProvider.Decrypt Metoda

Definicja

Odszyfrowuje dane, które zostały wcześniej zaszyfrowane.

Przeciążenia

Decrypt(Byte[], Boolean)

Odszyfrowuje dane za pomocą algorytmu RSA .

Decrypt(Byte[], RSAEncryptionPadding)

Odszyfrowuje dane, które zostały wcześniej zaszyfrowane za pomocą algorytmu RSA , przy użyciu określonego wypełnienia.

Decrypt(Byte[], Boolean)

Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs

Odszyfrowuje dane za pomocą algorytmu RSA .

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[]

Dane, które mają zostać odszyfrowane.

fOAEP
Boolean

true aby wykonać bezpośrednie RSA odszyfrowywanie przy użyciu dopełnienia OAEP; w przeciwnym razie należy false użyć dopełniania PKCS#1 w wersji 1.5.

Zwraca

Byte[]

Odszyfrowane dane, czyli oryginalny zwykły tekst przed szyfrowaniem.

Wyjątki

Nie można uzyskać dostawcy usług kryptograficznych (CSP).

-lub-

Parametr fOAEP jest true i długość parametru rgb jest większa niż KeySize.

-lub-

Klucz nie jest zgodny z zaszyfrowanymi danymi. Jednak sformułowanie wyjątku może nie być dokładne. Na przykład może to oznaczać Not enough storage is available to process this command.

rgb to null.

Przykłady

Poniższy przykład kodu szyfruje i odszyfrowuje dane.

W tym przykładzie użyto ASCIIEncoding klasy , UnicodeEncoding jednak klasa może być preferowana w przypadku dużych operacji na danych. Zaszyfrowaną wartość można zapisać jako nvarchar typ danych w programie Microsoft SQL Server.

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

Uwagi

Służy Encrypt do szyfrowania danych do odszyfrowywania za pomocą tej metody.

Zobacz też

Dotyczy

Decrypt(Byte[], RSAEncryptionPadding)

Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs

Odszyfrowuje dane, które zostały wcześniej zaszyfrowane za pomocą algorytmu RSA , przy użyciu określonego wypełnienia.

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[]

Dane do odszyfrowania.

padding
RSAEncryptionPadding

Dopełnienie.

Zwraca

Byte[]

Odszyfrowane dane.

Wyjątki

data to null.

-lub-

padding to null.

Tryb uzupełniania nie jest obsługiwany.

Uwagi

padding musi mieć wartość RSAEncryptionPadding.Pkcs1 lub RSAEncryptionPadding.OaepSHA1.

Dotyczy