Aracılığıyla paylaş


RSACryptoServiceProvider.Decrypt Yöntem

Tanım

Daha önce şifrelenen verilerin şifresini çözer.

Aşırı Yüklemeler

Decrypt(Byte[], Boolean)

Algoritma ile RSA verilerin şifresini çözer.

Decrypt(Byte[], RSAEncryptionPadding)

Belirtilen doldurmayı kullanarak algoritmayla RSA daha önce şifrelenen verilerin şifresini çözer.

Decrypt(Byte[], Boolean)

Kaynak:
RSACryptoServiceProvider.Unix.cs
Kaynak:
RSACryptoServiceProvider.Unix.cs
Kaynak:
RSACryptoServiceProvider.Unix.cs

Algoritma ile RSA verilerin şifresini çözer.

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

Parametreler

rgb
Byte[]

Şifresi çözülecek veriler.

fOAEP
Boolean

true OAEP doldurma kullanarak doğrudan RSA şifre çözme gerçekleştirmek; aksi takdirde PKCS false #1 v1.5 doldurmasını kullanmak için.

Döndürülenler

Byte[]

Şifresi çözülen veriler, şifrelemeden önceki özgün düz metindir.

Özel durumlar

Şifreleme hizmeti sağlayıcısı (CSP) alınamıyor.

-veya-

fOAEP parametresidir true ve parametresinin uzunluğu değerinden rgbKeySizebüyüktür.

-veya-

Anahtar şifrelenmiş veriyle eşleşmiyor. Ancak, özel durum ifadesi doğru olmayabilir. Örneğin, ifadesi Not enough storage is available to process this commandolabilir.

rgb, null değeridir.

Örnekler

Aşağıdaki kod örneği verileri şifreler ve şifresini çözer.

Bu örnekte sınıfı kullanılır ASCIIEncoding ; ancak sınıf büyük UnicodeEncoding veri işlemlerinde tercih edilebilir. Şifrelenmiş değer, Microsoft SQL Server'da veri nvarchar türü olarak kaydedilebilir.

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

Açıklamalar

Bu yöntemle şifre çözme verilerini şifrelemek için kullanın Encrypt .

Ayrıca bkz.

Şunlara uygulanır

Decrypt(Byte[], RSAEncryptionPadding)

Kaynak:
RSACryptoServiceProvider.Unix.cs
Kaynak:
RSACryptoServiceProvider.Unix.cs
Kaynak:
RSACryptoServiceProvider.Unix.cs

Belirtilen doldurmayı kullanarak algoritmayla RSA daha önce şifrelenen verilerin şifresini çözer.

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

Parametreler

data
Byte[]

Şifresi çözülecek veriler.

padding
RSAEncryptionPadding

Doldurma.

Döndürülenler

Byte[]

Şifresi çözülen veriler.

Özel durumlar

data, null değeridir.

-veya-

padding, null değeridir.

Doldurma modu desteklenmiyor.

Açıklamalar

paddingveya RSAEncryptionPadding.OaepSHA1olmalıdırRSAEncryptionPadding.Pkcs1.

Şunlara uygulanır