Bagikan melalui


RSACryptoServiceProvider.Decrypt Metode

Definisi

Mendekripsi data yang sebelumnya dienkripsi.

Overload

Decrypt(Byte[], Boolean)

Mendekripsi data dengan RSA algoritma.

Decrypt(Byte[], RSAEncryptionPadding)

Mendekripsi data yang sebelumnya dienkripsi dengan RSA algoritma dengan menggunakan padding yang ditentukan.

Decrypt(Byte[], Boolean)

Sumber:
RSACryptoServiceProvider.Unix.cs
Sumber:
RSACryptoServiceProvider.Unix.cs
Sumber:
RSACryptoServiceProvider.Unix.cs

Mendekripsi data dengan RSA algoritma.

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

Data yang akan didekripsi.

fOAEP
Boolean

true untuk melakukan dekripsi langsung RSA menggunakan padding OAEP; jika tidak, false untuk menggunakan padding PKCS#1 v1.5.

Mengembalikan

Byte[]

Data yang didekripsi, yang merupakan teks biasa asli sebelum enkripsi.

Pengecualian

Penyedia layanan kriptografi (CSP) tidak dapat diperoleh.

-atau-

Parameternya fOAEP adalah true dan panjang rgb parameter lebih besar dari KeySize.

-atau-

Kunci tidak cocok dengan data terenkripsi. Namun, kata-kata pengecualian mungkin tidak akurat. Misalnya, mungkin dikatakan Not enough storage is available to process this command.

rgbadalah null.

Contoh

Contoh kode berikut mengenkripsi dan mendekripsi data.

Contoh ini menggunakan kelas ; namun, UnicodeEncoding kelas mungkin lebih disukai ASCIIEncoding dalam operasi data besar. Nilai terenkripsi dapat disimpan sebagai nvarchar jenis data di 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

Keterangan

Gunakan Encrypt untuk mengenkripsi data untuk dekripsi dengan metode ini.

Lihat juga

Berlaku untuk

Decrypt(Byte[], RSAEncryptionPadding)

Sumber:
RSACryptoServiceProvider.Unix.cs
Sumber:
RSACryptoServiceProvider.Unix.cs
Sumber:
RSACryptoServiceProvider.Unix.cs

Mendekripsi data yang sebelumnya dienkripsi dengan RSA algoritma dengan menggunakan padding yang ditentukan.

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

Data yang akan didekripsi.

padding
RSAEncryptionPadding

Padding.

Mengembalikan

Byte[]

Data yang didekripsi.

Pengecualian

dataadalah null.

-atau-

paddingadalah null.

Mode padding tidak didukung.

Keterangan

padding harus berupa RSAEncryptionPadding.Pkcs1 atau RSAEncryptionPadding.OaepSHA1.

Berlaku untuk